<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::geometry::MeshBase&lt; DerivedT, MeshTraitsT, MeshTagT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1geometry_1_1_mesh_base.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-types">Protected 类型</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="classpcl_1_1geometry_1_1_mesh_base-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::geometry::MeshBase&lt; DerivedT, MeshTraitsT, MeshTagT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Base class for the half-edge mesh.  
 <a href="classpcl_1_1geometry_1_1_mesh_base.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="mesh__base_8h_source.html">mesh_base.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a5426836c0882d7e78b7e9a1d43bce64f"><td class="memItemLeft" align="right" valign="top"><a id="a5426836c0882d7e78b7e9a1d43bce64f"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Self</b></td></tr>
<tr class="separator:a5426836c0882d7e78b7e9a1d43bce64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46189c0f4d951969f539b067e8260afe"><td class="memItemLeft" align="right" valign="top"><a id="a46189c0f4d951969f539b067e8260afe"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a46189c0f4d951969f539b067e8260afe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb9d2c7720c1aa8539e8e78222f7f762"><td class="memItemLeft" align="right" valign="top"><a id="acb9d2c7720c1aa8539e8e78222f7f762"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:acb9d2c7720c1aa8539e8e78222f7f762"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa62a8c3368fb43feeffe34a2d369201a"><td class="memItemLeft" align="right" valign="top"><a id="aa62a8c3368fb43feeffe34a2d369201a"></a>
typedef DerivedT&#160;</td><td class="memItemRight" valign="bottom"><b>Derived</b></td></tr>
<tr class="separator:aa62a8c3368fb43feeffe34a2d369201a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a198d457d42dc0ff64552878e11f6e75a"><td class="memItemLeft" align="right" valign="top"><a id="a198d457d42dc0ff64552878e11f6e75a"></a>
typedef MeshTraitsT::VertexData&#160;</td><td class="memItemRight" valign="bottom"><b>VertexData</b></td></tr>
<tr class="separator:a198d457d42dc0ff64552878e11f6e75a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22d5fd46fc34effe845f3db982af7c67"><td class="memItemLeft" align="right" valign="top"><a id="a22d5fd46fc34effe845f3db982af7c67"></a>
typedef MeshTraitsT::HalfEdgeData&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeData</b></td></tr>
<tr class="separator:a22d5fd46fc34effe845f3db982af7c67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a4709db881568c3e6d78d1618992562"><td class="memItemLeft" align="right" valign="top"><a id="a9a4709db881568c3e6d78d1618992562"></a>
typedef MeshTraitsT::EdgeData&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeData</b></td></tr>
<tr class="separator:a9a4709db881568c3e6d78d1618992562"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adf340d996b67362ff7abd1ca0a8aacfa"><td class="memItemLeft" align="right" valign="top"><a id="adf340d996b67362ff7abd1ca0a8aacfa"></a>
typedef MeshTraitsT::FaceData&#160;</td><td class="memItemRight" valign="bottom"><b>FaceData</b></td></tr>
<tr class="separator:adf340d996b67362ff7abd1ca0a8aacfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac28b2ade8af35537e6b34c16105d2b5b"><td class="memItemLeft" align="right" valign="top"><a id="ac28b2ade8af35537e6b34c16105d2b5b"></a>
typedef MeshTraitsT::IsManifold&#160;</td><td class="memItemRight" valign="bottom"><b>IsManifold</b></td></tr>
<tr class="separator:ac28b2ade8af35537e6b34c16105d2b5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fb8736be6c6bd7eb88e67b6c9accad0"><td class="memItemLeft" align="right" valign="top"><a id="a3fb8736be6c6bd7eb88e67b6c9accad0"></a>
typedef MeshTagT&#160;</td><td class="memItemRight" valign="bottom"><b>MeshTag</b></td></tr>
<tr class="separator:a3fb8736be6c6bd7eb88e67b6c9accad0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05bf46aa37057e57d7a94495de417170"><td class="memItemLeft" align="right" valign="top"><a id="a05bf46aa37057e57d7a94495de417170"></a>
typedef boost::integral_constant&lt; bool, !boost::is_same&lt; VertexData, <a class="el" href="structpcl_1_1geometry_1_1_no_data.html">pcl::geometry::NoData</a> &gt;::value &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HasVertexData</b></td></tr>
<tr class="separator:a05bf46aa37057e57d7a94495de417170"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a329443fddf27d72e7202232cd782825b"><td class="memItemLeft" align="right" valign="top"><a id="a329443fddf27d72e7202232cd782825b"></a>
typedef boost::integral_constant&lt; bool, !boost::is_same&lt; HalfEdgeData, <a class="el" href="structpcl_1_1geometry_1_1_no_data.html">pcl::geometry::NoData</a> &gt;::value &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HasHalfEdgeData</b></td></tr>
<tr class="separator:a329443fddf27d72e7202232cd782825b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a72d0dcda64a00399b4361bec0db39f81"><td class="memItemLeft" align="right" valign="top"><a id="a72d0dcda64a00399b4361bec0db39f81"></a>
typedef boost::integral_constant&lt; bool, !boost::is_same&lt; EdgeData, <a class="el" href="structpcl_1_1geometry_1_1_no_data.html">pcl::geometry::NoData</a> &gt;::value &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HasEdgeData</b></td></tr>
<tr class="separator:a72d0dcda64a00399b4361bec0db39f81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb0c7e5952eac9f1e62ed05b74d1b59a"><td class="memItemLeft" align="right" valign="top"><a id="aeb0c7e5952eac9f1e62ed05b74d1b59a"></a>
typedef boost::integral_constant&lt; bool, !boost::is_same&lt; FaceData, <a class="el" href="structpcl_1_1geometry_1_1_no_data.html">pcl::geometry::NoData</a> &gt;::value &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HasFaceData</b></td></tr>
<tr class="separator:aeb0c7e5952eac9f1e62ed05b74d1b59a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad4806abbdf6bcc6e8798126fa9a4c46d"><td class="memItemLeft" align="right" valign="top"><a id="ad4806abbdf6bcc6e8798126fa9a4c46d"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; VertexData &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VertexDataCloud</b></td></tr>
<tr class="separator:ad4806abbdf6bcc6e8798126fa9a4c46d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f2376da00c2fd77e502832acb412323"><td class="memItemLeft" align="right" valign="top"><a id="a2f2376da00c2fd77e502832acb412323"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; HalfEdgeData &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeDataCloud</b></td></tr>
<tr class="separator:a2f2376da00c2fd77e502832acb412323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedae32e3edfa0a8e008799073ea746e2"><td class="memItemLeft" align="right" valign="top"><a id="aedae32e3edfa0a8e008799073ea746e2"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; EdgeData &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeDataCloud</b></td></tr>
<tr class="separator:aedae32e3edfa0a8e008799073ea746e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf0c30be61d023d42840ddae8b69cf06"><td class="memItemLeft" align="right" valign="top"><a id="aaf0c30be61d023d42840ddae8b69cf06"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; FaceData &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceDataCloud</b></td></tr>
<tr class="separator:aaf0c30be61d023d42840ddae8b69cf06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a593803c78eaf26929ca1614c3dfd6aa7"><td class="memItemLeft" align="right" valign="top"><a id="a593803c78eaf26929ca1614c3dfd6aa7"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">pcl::geometry::VertexIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIndex</b></td></tr>
<tr class="separator:a593803c78eaf26929ca1614c3dfd6aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2fc9a1743b3cf2ab352cf950e524721"><td class="memItemLeft" align="right" valign="top"><a id="af2fc9a1743b3cf2ab352cf950e524721"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">pcl::geometry::HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeIndex</b></td></tr>
<tr class="separator:af2fc9a1743b3cf2ab352cf950e524721"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c27fec882dc14ae0d1f786966e49a60"><td class="memItemLeft" align="right" valign="top"><a id="a3c27fec882dc14ae0d1f786966e49a60"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">pcl::geometry::EdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeIndex</b></td></tr>
<tr class="separator:a3c27fec882dc14ae0d1f786966e49a60"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6eacd48a7f36f68680c23d57d548b20a"><td class="memItemLeft" align="right" valign="top"><a id="a6eacd48a7f36f68680c23d57d548b20a"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">pcl::geometry::FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIndex</b></td></tr>
<tr class="separator:a6eacd48a7f36f68680c23d57d548b20a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88ebb16796029fd47e49a142ece9e202"><td class="memItemLeft" align="right" valign="top"><a id="a88ebb16796029fd47e49a142ece9e202"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIndices</b></td></tr>
<tr class="separator:a88ebb16796029fd47e49a142ece9e202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a015c19d786466b38e1e42bc18447a0ac"><td class="memItemLeft" align="right" valign="top"><a id="a015c19d786466b38e1e42bc18447a0ac"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeIndices</b></td></tr>
<tr class="separator:a015c19d786466b38e1e42bc18447a0ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c5ea4ee248f0369321f57420327b8f5"><td class="memItemLeft" align="right" valign="top"><a id="a6c5ea4ee248f0369321f57420327b8f5"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>EdgeIndices</b></td></tr>
<tr class="separator:a6c5ea4ee248f0369321f57420327b8f5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ba65a8681b3edf2e6d973e6e1f7e00d"><td class="memItemLeft" align="right" valign="top"><a id="a2ba65a8681b3edf2e6d973e6e1f7e00d"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIndices</b></td></tr>
<tr class="separator:a2ba65a8681b3edf2e6d973e6e1f7e00d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad25067e5d900354cd0f0ee646823e4e3"><td class="memItemLeft" align="right" valign="top"><a id="ad25067e5d900354cd0f0ee646823e4e3"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html">pcl::geometry::VertexAroundVertexCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VertexAroundVertexCirculator</b></td></tr>
<tr class="separator:ad25067e5d900354cd0f0ee646823e4e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2acc63b0c3492cb85add8681d8bd6e3"><td class="memItemLeft" align="right" valign="top"><a id="ae2acc63b0c3492cb85add8681d8bd6e3"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html">pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>OutgoingHalfEdgeAroundVertexCirculator</b></td></tr>
<tr class="separator:ae2acc63b0c3492cb85add8681d8bd6e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a11c76516c34849ccfe05bdabaa8104e6"><td class="memItemLeft" align="right" valign="top"><a id="a11c76516c34849ccfe05bdabaa8104e6"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html">pcl::geometry::IncomingHalfEdgeAroundVertexCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IncomingHalfEdgeAroundVertexCirculator</b></td></tr>
<tr class="separator:a11c76516c34849ccfe05bdabaa8104e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae089b9c063c2dfc27645ed16859671fa"><td class="memItemLeft" align="right" valign="top"><a id="ae089b9c063c2dfc27645ed16859671fa"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html">pcl::geometry::FaceAroundVertexCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceAroundVertexCirculator</b></td></tr>
<tr class="separator:ae089b9c063c2dfc27645ed16859671fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7140fca91ca726c1b587ef0093943590"><td class="memItemLeft" align="right" valign="top"><a id="a7140fca91ca726c1b587ef0093943590"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html">pcl::geometry::VertexAroundFaceCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>VertexAroundFaceCirculator</b></td></tr>
<tr class="separator:a7140fca91ca726c1b587ef0093943590"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb969f516baf518f43c26cca08a159a"><td class="memItemLeft" align="right" valign="top"><a id="a1eb969f516baf518f43c26cca08a159a"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html">pcl::geometry::InnerHalfEdgeAroundFaceCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>InnerHalfEdgeAroundFaceCirculator</b></td></tr>
<tr class="separator:a1eb969f516baf518f43c26cca08a159a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e0af986c31eb7545ee19f483ac0246c"><td class="memItemLeft" align="right" valign="top"><a id="a7e0af986c31eb7545ee19f483ac0246c"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html">pcl::geometry::OuterHalfEdgeAroundFaceCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>OuterHalfEdgeAroundFaceCirculator</b></td></tr>
<tr class="separator:a7e0af986c31eb7545ee19f483ac0246c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2227334b3a3c95623d768b27bbccd67"><td class="memItemLeft" align="right" valign="top"><a id="ae2227334b3a3c95623d768b27bbccd67"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html">pcl::geometry::FaceAroundFaceCirculator</a>&lt; const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>FaceAroundFaceCirculator</b></td></tr>
<tr class="separator:ae2227334b3a3c95623d768b27bbccd67"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a58aa4503f5e5c8a7995ac9f0f94576ea"><td class="memItemLeft" align="right" valign="top"><a id="a58aa4503f5e5c8a7995ac9f0f94576ea"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>BOOST_CONCEPT_ASSERT</b> ((boost::Convertible&lt; IsManifold, bool &gt;))</td></tr>
<tr class="separator:a58aa4503f5e5c8a7995ac9f0f94576ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d9be6a61b0476b46d5435ac615c459"><td class="memItemLeft" align="right" valign="top"><a id="a14d9be6a61b0476b46d5435ac615c459"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a14d9be6a61b0476b46d5435ac615c459">MeshBase</a> ()</td></tr>
<tr class="memdesc:a14d9be6a61b0476b46d5435ac615c459"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. <br /></td></tr>
<tr class="separator:a14d9be6a61b0476b46d5435ac615c459"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac6156a983fe17684d23c56a17b4c7ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aac6156a983fe17684d23c56a17b4c7ff">addVertex</a> (const VertexData &amp;vertex_data=VertexData())</td></tr>
<tr class="memdesc:aac6156a983fe17684d23c56a17b4c7ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a vertex to the mesh.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#aac6156a983fe17684d23c56a17b4c7ff">更多...</a><br /></td></tr>
<tr class="separator:aac6156a983fe17684d23c56a17b4c7ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9405be1d72b2a7bb1ec0bdc5c13c297a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9405be1d72b2a7bb1ec0bdc5c13c297a">addFace</a> (const VertexIndices &amp;vertices, const FaceData &amp;face_data=FaceData(), const EdgeData &amp;edge_data=EdgeData(), const HalfEdgeData &amp;half_edge_data=HalfEdgeData())</td></tr>
<tr class="memdesc:a9405be1d72b2a7bb1ec0bdc5c13c297a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a face to the mesh. Data is only added if it is associated with the elements. The last vertex is connected with the first one.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a9405be1d72b2a7bb1ec0bdc5c13c297a">更多...</a><br /></td></tr>
<tr class="separator:a9405be1d72b2a7bb1ec0bdc5c13c297a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a428be4accd7f51c75d2e889d99205535"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a428be4accd7f51c75d2e889d99205535">deleteVertex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex)</td></tr>
<tr class="memdesc:a428be4accd7f51c75d2e889d99205535"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given vertex and all connected half-edges and faces as deleted.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a428be4accd7f51c75d2e889d99205535">更多...</a><br /></td></tr>
<tr class="separator:a428be4accd7f51c75d2e889d99205535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4affa8ade9d394034ce299bf7fd95af1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a4affa8ade9d394034ce299bf7fd95af1">deleteEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he)</td></tr>
<tr class="memdesc:a4affa8ade9d394034ce299bf7fd95af1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given half-edge, the opposite half-edge and the associated faces as deleted.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a4affa8ade9d394034ce299bf7fd95af1">更多...</a><br /></td></tr>
<tr class="separator:a4affa8ade9d394034ce299bf7fd95af1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a162bb8d66161e125929cd907ce48e710"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a162bb8d66161e125929cd907ce48e710">deleteEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;idx_edge)</td></tr>
<tr class="memdesc:a162bb8d66161e125929cd907ce48e710"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given edge (both half-edges) and the associated faces as deleted.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a162bb8d66161e125929cd907ce48e710">更多...</a><br /></td></tr>
<tr class="separator:a162bb8d66161e125929cd907ce48e710"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18850a81cabcf16597a2418f67df452c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">deleteFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face)</td></tr>
<tr class="memdesc:a18850a81cabcf16597a2418f67df452c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given face as deleted. More faces are deleted if the manifold mesh would become non-manifold.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">更多...</a><br /></td></tr>
<tr class="separator:a18850a81cabcf16597a2418f67df452c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5c51551b9badbbe67526dbcf55a9efc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ad5c51551b9badbbe67526dbcf55a9efc">cleanUp</a> ()</td></tr>
<tr class="memdesc:ad5c51551b9badbbe67526dbcf55a9efc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all mesh elements and data that are marked as deleted.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#ad5c51551b9badbbe67526dbcf55a9efc">更多...</a><br /></td></tr>
<tr class="separator:ad5c51551b9badbbe67526dbcf55a9efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa272421af280455cc40159a9726053a7"><td class="memItemLeft" align="right" valign="top"><a id="aa272421af280455cc40159a9726053a7"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aa272421af280455cc40159a9726053a7">getOutgoingHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:aa272421af280455cc40159a9726053a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the outgoing half-edge index to a given vertex. <br /></td></tr>
<tr class="separator:aa272421af280455cc40159a9726053a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af963308f6ccc1e52f02ffa7aec2c1242"><td class="memItemLeft" align="right" valign="top"><a id="af963308f6ccc1e52f02ffa7aec2c1242"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af963308f6ccc1e52f02ffa7aec2c1242">getIncomingHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:af963308f6ccc1e52f02ffa7aec2c1242"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the incoming half-edge index to a given vertex. <br /></td></tr>
<tr class="separator:af963308f6ccc1e52f02ffa7aec2c1242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace722a9209cf91e0f4a1be62ed9ace8d"><td class="memItemLeft" align="right" valign="top"><a id="ace722a9209cf91e0f4a1be62ed9ace8d"></a>
<a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ace722a9209cf91e0f4a1be62ed9ace8d">getTerminatingVertexIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:ace722a9209cf91e0f4a1be62ed9ace8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the terminating vertex index to a given half-edge. <br /></td></tr>
<tr class="separator:ace722a9209cf91e0f4a1be62ed9ace8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a495b6156425295d926afdbcc4e34fc30"><td class="memItemLeft" align="right" valign="top"><a id="a495b6156425295d926afdbcc4e34fc30"></a>
<a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a495b6156425295d926afdbcc4e34fc30">getOriginatingVertexIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:a495b6156425295d926afdbcc4e34fc30"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the originating vertex index to a given half-edge. <br /></td></tr>
<tr class="separator:a495b6156425295d926afdbcc4e34fc30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f3e4696e4a6dd299dbe94fd23ffbb37"><td class="memItemLeft" align="right" valign="top"><a id="a1f3e4696e4a6dd299dbe94fd23ffbb37"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1f3e4696e4a6dd299dbe94fd23ffbb37">getOppositeHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:a1f3e4696e4a6dd299dbe94fd23ffbb37"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the opposite half-edge index to a given half-edge. <br /></td></tr>
<tr class="separator:a1f3e4696e4a6dd299dbe94fd23ffbb37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06dfbe1db8d1f9c24eff51ebd4852652"><td class="memItemLeft" align="right" valign="top"><a id="a06dfbe1db8d1f9c24eff51ebd4852652"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a06dfbe1db8d1f9c24eff51ebd4852652">getNextHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:a06dfbe1db8d1f9c24eff51ebd4852652"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the next half-edge index to a given half-edge. <br /></td></tr>
<tr class="separator:a06dfbe1db8d1f9c24eff51ebd4852652"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58255271906702d47fcbe55d6f117be1"><td class="memItemLeft" align="right" valign="top"><a id="a58255271906702d47fcbe55d6f117be1"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a58255271906702d47fcbe55d6f117be1">getPrevHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:a58255271906702d47fcbe55d6f117be1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the previous half-edge index to a given half-edge. <br /></td></tr>
<tr class="separator:a58255271906702d47fcbe55d6f117be1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6547b360f64c3fce6ca9af1cfbf77ff"><td class="memItemLeft" align="right" valign="top"><a id="ae6547b360f64c3fce6ca9af1cfbf77ff"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6547b360f64c3fce6ca9af1cfbf77ff">getFaceIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:ae6547b360f64c3fce6ca9af1cfbf77ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the face index to a given half-edge. <br /></td></tr>
<tr class="separator:ae6547b360f64c3fce6ca9af1cfbf77ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abcb2b4319b20191c7626bca0c4bab147"><td class="memItemLeft" align="right" valign="top"><a id="abcb2b4319b20191c7626bca0c4bab147"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#abcb2b4319b20191c7626bca0c4bab147">getOppositeFaceIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge) const</td></tr>
<tr class="memdesc:abcb2b4319b20191c7626bca0c4bab147"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the face index to a given half-edge. <br /></td></tr>
<tr class="separator:abcb2b4319b20191c7626bca0c4bab147"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a558324489cd62f54825fedd6f228fcc0"><td class="memItemLeft" align="right" valign="top"><a id="a558324489cd62f54825fedd6f228fcc0"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a558324489cd62f54825fedd6f228fcc0">getInnerHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a558324489cd62f54825fedd6f228fcc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the inner half-edge index to a given face. <br /></td></tr>
<tr class="separator:a558324489cd62f54825fedd6f228fcc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f508f37008a35cb0a75e031f96cc436"><td class="memItemLeft" align="right" valign="top"><a id="a1f508f37008a35cb0a75e031f96cc436"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1f508f37008a35cb0a75e031f96cc436">getOuterHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a1f508f37008a35cb0a75e031f96cc436"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the outer half-edge inex to a given face. <br /></td></tr>
<tr class="separator:a1f508f37008a35cb0a75e031f96cc436"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17ce476f53a6e99c6de3996bb217674c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html">VertexAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a17ce476f53a6e99c6de3996bb217674c">getVertexAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="separator:a17ce476f53a6e99c6de3996bb217674c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a138e4db9aa95de0b5b9a4c8033eaa3be"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html">VertexAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a138e4db9aa95de0b5b9a4c8033eaa3be">getVertexAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_outgoing_half_edge) const</td></tr>
<tr class="separator:a138e4db9aa95de0b5b9a4c8033eaa3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a76d6a2a322ad9723d8c16c6ac6adb079"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html">OutgoingHalfEdgeAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a76d6a2a322ad9723d8c16c6ac6adb079">getOutgoingHalfEdgeAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="separator:a76d6a2a322ad9723d8c16c6ac6adb079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5470d21fc93156f145190d1b783f9fa2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html">OutgoingHalfEdgeAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a5470d21fc93156f145190d1b783f9fa2">getOutgoingHalfEdgeAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_outgoing_half_edge) const</td></tr>
<tr class="separator:a5470d21fc93156f145190d1b783f9fa2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3389ae4dcc4ca85e5adfdc33f48edc96"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html">IncomingHalfEdgeAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a3389ae4dcc4ca85e5adfdc33f48edc96">getIncomingHalfEdgeAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="separator:a3389ae4dcc4ca85e5adfdc33f48edc96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a422dba202580736060898b65c1dde8dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html">IncomingHalfEdgeAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a422dba202580736060898b65c1dde8dd">getIncomingHalfEdgeAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_incoming_half_edge) const</td></tr>
<tr class="separator:a422dba202580736060898b65c1dde8dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acbd873aa1fd360de8a67336854ceb0c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html">FaceAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#acbd873aa1fd360de8a67336854ceb0c0">getFaceAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="separator:acbd873aa1fd360de8a67336854ceb0c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad0e01429b196849f6b081e1808dd777"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html">FaceAroundVertexCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aad0e01429b196849f6b081e1808dd777">getFaceAroundVertexCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_outgoing_half_edge) const</td></tr>
<tr class="separator:aad0e01429b196849f6b081e1808dd777"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86e8b2d7ccde25e97d4452a9c63a2be6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html">VertexAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a86e8b2d7ccde25e97d4452a9c63a2be6">getVertexAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="separator:a86e8b2d7ccde25e97d4452a9c63a2be6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22c4d0b82719c61474f1c10ae9165273"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html">VertexAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a22c4d0b82719c61474f1c10ae9165273">getVertexAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_inner_half_edge) const</td></tr>
<tr class="separator:a22c4d0b82719c61474f1c10ae9165273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c30f9b4f2c62b35eb70fa46e48f6024"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html">InnerHalfEdgeAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a3c30f9b4f2c62b35eb70fa46e48f6024">getInnerHalfEdgeAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="separator:a3c30f9b4f2c62b35eb70fa46e48f6024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a142a340e5b5cb10d86f4e1d49b3de90a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html">InnerHalfEdgeAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a142a340e5b5cb10d86f4e1d49b3de90a">getInnerHalfEdgeAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_inner_half_edge) const</td></tr>
<tr class="separator:a142a340e5b5cb10d86f4e1d49b3de90a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefe2d565191d2e35a6a4ad8b2f0773b5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html">OuterHalfEdgeAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aefe2d565191d2e35a6a4ad8b2f0773b5">getOuterHalfEdgeAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="separator:aefe2d565191d2e35a6a4ad8b2f0773b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59a6e48c3f3275d65caf9d90139f7b30"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html">OuterHalfEdgeAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a59a6e48c3f3275d65caf9d90139f7b30">getOuterHalfEdgeAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_inner_half_edge) const</td></tr>
<tr class="separator:a59a6e48c3f3275d65caf9d90139f7b30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0ca20bfce1cea8fdc94fddace06c38a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html">FaceAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aa0ca20bfce1cea8fdc94fddace06c38a">getFaceAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="separator:aa0ca20bfce1cea8fdc94fddace06c38a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8fb217c674a8b6cc538b80dc84708f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html">FaceAroundFaceCirculator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af8fb217c674a8b6cc538b80dc84708f6">getFaceAroundFaceCirculator</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_inner_half_edge) const</td></tr>
<tr class="separator:af8fb217c674a8b6cc538b80dc84708f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab7ec15339e7dfb43b79c0d5bb832878"><td class="memItemLeft" align="right" valign="top"><a id="aab7ec15339e7dfb43b79c0d5bb832878"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aab7ec15339e7dfb43b79c0d5bb832878">isEqualTopology</a> (const <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">Self</a> &amp;other) const</td></tr>
<tr class="memdesc:aab7ec15339e7dfb43b79c0d5bb832878"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the other mesh has the same topology as this mesh. <br /></td></tr>
<tr class="separator:aab7ec15339e7dfb43b79c0d5bb832878"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace5548daf774ab8cc7b2f294d7d8050c"><td class="memItemLeft" align="right" valign="top"><a id="ace5548daf774ab8cc7b2f294d7d8050c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:ace5548daf774ab8cc7b2f294d7d8050c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex index is a valid index into the mesh. <br /></td></tr>
<tr class="separator:ace5548daf774ab8cc7b2f294d7d8050c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bfa77d242a657c796f188fb78bc9ba2"><td class="memItemLeft" align="right" valign="top"><a id="a6bfa77d242a657c796f188fb78bc9ba2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6bfa77d242a657c796f188fb78bc9ba2">isValid</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he) const</td></tr>
<tr class="memdesc:a6bfa77d242a657c796f188fb78bc9ba2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given half-edge index is a valid index into the mesh. <br  />
 <br /></td></tr>
<tr class="separator:a6bfa77d242a657c796f188fb78bc9ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84a277d60719ee1d6793b2f5e54c64fc"><td class="memItemLeft" align="right" valign="top"><a id="a84a277d60719ee1d6793b2f5e54c64fc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a84a277d60719ee1d6793b2f5e54c64fc">isValid</a> (const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;idx_edge) const</td></tr>
<tr class="memdesc:a84a277d60719ee1d6793b2f5e54c64fc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given edge index is a valid index into the mesh. <br /></td></tr>
<tr class="separator:a84a277d60719ee1d6793b2f5e54c64fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8c583da87f1680b80536952fefb7b6aa"><td class="memItemLeft" align="right" valign="top"><a id="a8c583da87f1680b80536952fefb7b6aa"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a8c583da87f1680b80536952fefb7b6aa">isValid</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a8c583da87f1680b80536952fefb7b6aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given face index is a valid index into the mesh. <br  />
 <br /></td></tr>
<tr class="separator:a8c583da87f1680b80536952fefb7b6aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa114f7eeceeecdedfefc2d83d53c4f8b"><td class="memItemLeft" align="right" valign="top"><a id="aa114f7eeceeecdedfefc2d83d53c4f8b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:aa114f7eeceeecdedfefc2d83d53c4f8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex is marked as deleted. <br /></td></tr>
<tr class="separator:aa114f7eeceeecdedfefc2d83d53c4f8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9850283c5476299d481f77191b375ebc"><td class="memItemLeft" align="right" valign="top"><a id="a9850283c5476299d481f77191b375ebc"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9850283c5476299d481f77191b375ebc">isDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he) const</td></tr>
<tr class="memdesc:a9850283c5476299d481f77191b375ebc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given half-edge is marked as deleted. <br /></td></tr>
<tr class="separator:a9850283c5476299d481f77191b375ebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9dd8e27103ee10d9628d56d05e06d04"><td class="memItemLeft" align="right" valign="top"><a id="ae9dd8e27103ee10d9628d56d05e06d04"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae9dd8e27103ee10d9628d56d05e06d04">isDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;idx_edge) const</td></tr>
<tr class="memdesc:ae9dd8e27103ee10d9628d56d05e06d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given edge (any of the two half-edges) is marked as deleted. <br /></td></tr>
<tr class="separator:ae9dd8e27103ee10d9628d56d05e06d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b250b2635f95c10202f73b34a5ec240"><td class="memItemLeft" align="right" valign="top"><a id="a0b250b2635f95c10202f73b34a5ec240"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a0b250b2635f95c10202f73b34a5ec240">isDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a0b250b2635f95c10202f73b34a5ec240"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given face is marked as deleted. <br /></td></tr>
<tr class="separator:a0b250b2635f95c10202f73b34a5ec240"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cbfbb8798253ce09f52fec701ee3aa7"><td class="memItemLeft" align="right" valign="top"><a id="a9cbfbb8798253ce09f52fec701ee3aa7"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9cbfbb8798253ce09f52fec701ee3aa7">isIsolated</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:a9cbfbb8798253ce09f52fec701ee3aa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex is isolated (not connected to other elements). <br /></td></tr>
<tr class="separator:a9cbfbb8798253ce09f52fec701ee3aa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1318e10020901a4de7eb5bdd947cf669"><td class="memItemLeft" align="right" valign="top"><a id="a1318e10020901a4de7eb5bdd947cf669"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:a1318e10020901a4de7eb5bdd947cf669"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex lies on the boundary. Isolated vertices are considered to be on the boundary. <br /></td></tr>
<tr class="separator:a1318e10020901a4de7eb5bdd947cf669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32be29ab6c40c5a4a8a8c0895080ca43"><td class="memItemLeft" align="right" valign="top"><a id="a32be29ab6c40c5a4a8a8c0895080ca43"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a32be29ab6c40c5a4a8a8c0895080ca43">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he) const</td></tr>
<tr class="memdesc:a32be29ab6c40c5a4a8a8c0895080ca43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given half-edge lies on the bounddary. <br /></td></tr>
<tr class="separator:a32be29ab6c40c5a4a8a8c0895080ca43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb9d2df2715d703ac11e279121433067"><td class="memItemLeft" align="right" valign="top"><a id="aeb9d2df2715d703ac11e279121433067"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aeb9d2df2715d703ac11e279121433067">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;idx_edge) const</td></tr>
<tr class="memdesc:aeb9d2df2715d703ac11e279121433067"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given edge lies on the boundary (any of the two half-edges lies on the boundary. <br /></td></tr>
<tr class="separator:aeb9d2df2715d703ac11e279121433067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a2a5251d47b228119292f93a263715"><td class="memTemplParams" colspan="2">template&lt;bool CheckVerticesT&gt; </td></tr>
<tr class="memitem:aa4a2a5251d47b228119292f93a263715"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aa4a2a5251d47b228119292f93a263715">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:aa4a2a5251d47b228119292f93a263715"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given face lies on the boundary. There are two versions of this method, selected by the template parameter.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#aa4a2a5251d47b228119292f93a263715">更多...</a><br /></td></tr>
<tr class="separator:aa4a2a5251d47b228119292f93a263715"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9602bb1b698be2c9686df3e2f66a9a72"><td class="memItemLeft" align="right" valign="top"><a id="a9602bb1b698be2c9686df3e2f66a9a72"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9602bb1b698be2c9686df3e2f66a9a72">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a9602bb1b698be2c9686df3e2f66a9a72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given face lies on the boundary. This method uses isBoundary <code>true</code> which checks if any vertex lies on the boundary. <br /></td></tr>
<tr class="separator:a9602bb1b698be2c9686df3e2f66a9a72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeefcfd903922b1c61251f0c237ce6cad"><td class="memItemLeft" align="right" valign="top"><a id="aeefcfd903922b1c61251f0c237ce6cad"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aeefcfd903922b1c61251f0c237ce6cad">isManifold</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:aeefcfd903922b1c61251f0c237ce6cad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex is manifold. Isolated vertices are manifold. <br /></td></tr>
<tr class="separator:aeefcfd903922b1c61251f0c237ce6cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed1c1b4f45d8cd9d4f357df69cd16eff"><td class="memItemLeft" align="right" valign="top"><a id="aed1c1b4f45d8cd9d4f357df69cd16eff"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aed1c1b4f45d8cd9d4f357df69cd16eff">isManifold</a> () const</td></tr>
<tr class="memdesc:aed1c1b4f45d8cd9d4f357df69cd16eff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the mesh is manifold. <br /></td></tr>
<tr class="separator:aed1c1b4f45d8cd9d4f357df69cd16eff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a52baa83cf38a51bf35ab81a4d2d456c2"><td class="memItemLeft" align="right" valign="top"><a id="a52baa83cf38a51bf35ab81a4d2d456c2"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a52baa83cf38a51bf35ab81a4d2d456c2">sizeVertices</a> () const</td></tr>
<tr class="memdesc:a52baa83cf38a51bf35ab81a4d2d456c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of the vertices. <br /></td></tr>
<tr class="separator:a52baa83cf38a51bf35ab81a4d2d456c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44727455a0a52caba9b444cd408db3e4"><td class="memItemLeft" align="right" valign="top"><a id="a44727455a0a52caba9b444cd408db3e4"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a44727455a0a52caba9b444cd408db3e4">sizeHalfEdges</a> () const</td></tr>
<tr class="memdesc:a44727455a0a52caba9b444cd408db3e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of the half-edges. <br /></td></tr>
<tr class="separator:a44727455a0a52caba9b444cd408db3e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a479a1fb135090564e36a7ed69560c89a"><td class="memItemLeft" align="right" valign="top"><a id="a479a1fb135090564e36a7ed69560c89a"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a479a1fb135090564e36a7ed69560c89a">sizeEdges</a> () const</td></tr>
<tr class="memdesc:a479a1fb135090564e36a7ed69560c89a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of the edges. <br /></td></tr>
<tr class="separator:a479a1fb135090564e36a7ed69560c89a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c16666dbdf7d8c8cce217a68134694"><td class="memItemLeft" align="right" valign="top"><a id="a85c16666dbdf7d8c8cce217a68134694"></a>
size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a85c16666dbdf7d8c8cce217a68134694">sizeFaces</a> () const</td></tr>
<tr class="memdesc:a85c16666dbdf7d8c8cce217a68134694"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the number of the faces. <br /></td></tr>
<tr class="separator:a85c16666dbdf7d8c8cce217a68134694"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41c3621ed5b27cbb87cb8a898f2ced25"><td class="memItemLeft" align="right" valign="top"><a id="a41c3621ed5b27cbb87cb8a898f2ced25"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a41c3621ed5b27cbb87cb8a898f2ced25">empty</a> () const</td></tr>
<tr class="memdesc:a41c3621ed5b27cbb87cb8a898f2ced25"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the mesh is empty. <br /></td></tr>
<tr class="separator:a41c3621ed5b27cbb87cb8a898f2ced25"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a100c6f21e1e05ee3d70f64c35070193b"><td class="memItemLeft" align="right" valign="top"><a id="a100c6f21e1e05ee3d70f64c35070193b"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a100c6f21e1e05ee3d70f64c35070193b">emptyVertices</a> () const</td></tr>
<tr class="memdesc:a100c6f21e1e05ee3d70f64c35070193b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the vertices are empty. <br /></td></tr>
<tr class="separator:a100c6f21e1e05ee3d70f64c35070193b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a205ed992a9a4ae55610dc546eb9ff07e"><td class="memItemLeft" align="right" valign="top"><a id="a205ed992a9a4ae55610dc546eb9ff07e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a205ed992a9a4ae55610dc546eb9ff07e">emptyEdges</a> () const</td></tr>
<tr class="memdesc:a205ed992a9a4ae55610dc546eb9ff07e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the edges are empty. <br /></td></tr>
<tr class="separator:a205ed992a9a4ae55610dc546eb9ff07e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41348d880d4db2791b117ce53ac0844d"><td class="memItemLeft" align="right" valign="top"><a id="a41348d880d4db2791b117ce53ac0844d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a41348d880d4db2791b117ce53ac0844d">emptyFaces</a> () const</td></tr>
<tr class="memdesc:a41348d880d4db2791b117ce53ac0844d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the faces are empty. <br /></td></tr>
<tr class="separator:a41348d880d4db2791b117ce53ac0844d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1305a470f59e6c8e05c68011c0197deb"><td class="memItemLeft" align="right" valign="top"><a id="a1305a470f59e6c8e05c68011c0197deb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1305a470f59e6c8e05c68011c0197deb">reserveVertices</a> (const size_t n)</td></tr>
<tr class="memdesc:a1305a470f59e6c8e05c68011c0197deb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve storage space n vertices. <br /></td></tr>
<tr class="separator:a1305a470f59e6c8e05c68011c0197deb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba5dff7fe8026ec59b7f06e47aa16716"><td class="memItemLeft" align="right" valign="top"><a id="aba5dff7fe8026ec59b7f06e47aa16716"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aba5dff7fe8026ec59b7f06e47aa16716">reserveEdges</a> (const size_t n)</td></tr>
<tr class="memdesc:aba5dff7fe8026ec59b7f06e47aa16716"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve storage space for n edges (2*n storage space is reserved for the half-edges). <br /></td></tr>
<tr class="separator:aba5dff7fe8026ec59b7f06e47aa16716"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ad369f17f660e59cb8fc3ac5ad17104"><td class="memItemLeft" align="right" valign="top"><a id="a1ad369f17f660e59cb8fc3ac5ad17104"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1ad369f17f660e59cb8fc3ac5ad17104">reserveFaces</a> (const size_t n)</td></tr>
<tr class="memdesc:a1ad369f17f660e59cb8fc3ac5ad17104"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve storage space for n faces. <br /></td></tr>
<tr class="separator:a1ad369f17f660e59cb8fc3ac5ad17104"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd58da1605ef6b771f7ce6dccf6e3347"><td class="memItemLeft" align="right" valign="top"><a id="abd58da1605ef6b771f7ce6dccf6e3347"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#abd58da1605ef6b771f7ce6dccf6e3347">resizeVertices</a> (const size_t n, const VertexData &amp;data=VertexData())</td></tr>
<tr class="memdesc:abd58da1605ef6b771f7ce6dccf6e3347"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the the vertices to n elements. <br /></td></tr>
<tr class="separator:abd58da1605ef6b771f7ce6dccf6e3347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f4aa39aa1a9bf6405f66599625cc54"><td class="memItemLeft" align="right" valign="top"><a id="a75f4aa39aa1a9bf6405f66599625cc54"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a75f4aa39aa1a9bf6405f66599625cc54">resizeEdges</a> (const size_t n, const EdgeData &amp;edge_data=EdgeData(), const HalfEdgeData he_data=HalfEdgeData())</td></tr>
<tr class="memdesc:a75f4aa39aa1a9bf6405f66599625cc54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the edges to n elements (half-edges will hold 2*n elements). <br /></td></tr>
<tr class="separator:a75f4aa39aa1a9bf6405f66599625cc54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45f308f4bc78a27803bca707856345fa"><td class="memItemLeft" align="right" valign="top"><a id="a45f308f4bc78a27803bca707856345fa"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a45f308f4bc78a27803bca707856345fa">resizeFaces</a> (const size_t n, const FaceData &amp;data=FaceData())</td></tr>
<tr class="memdesc:a45f308f4bc78a27803bca707856345fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the faces to n elements. <br /></td></tr>
<tr class="separator:a45f308f4bc78a27803bca707856345fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3c8260c25498a753b8d6b7204667764"><td class="memItemLeft" align="right" valign="top"><a id="af3c8260c25498a753b8d6b7204667764"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af3c8260c25498a753b8d6b7204667764">clear</a> ()</td></tr>
<tr class="memdesc:af3c8260c25498a753b8d6b7204667764"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all mesh elements and data. <br /></td></tr>
<tr class="separator:af3c8260c25498a753b8d6b7204667764"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad01617b7fc9c08e79b7357659a8d6731"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ad01617b7fc9c08e79b7357659a8d6731">getVertexDataCloud</a> ()</td></tr>
<tr class="memdesc:ad01617b7fc9c08e79b7357659a8d6731"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get access to the stored vertex data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#ad01617b7fc9c08e79b7357659a8d6731">更多...</a><br /></td></tr>
<tr class="separator:ad01617b7fc9c08e79b7357659a8d6731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1237135e3318c46b9e71c7a31c22859"><td class="memItemLeft" align="right" valign="top"><a id="ab1237135e3318c46b9e71c7a31c22859"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ab1237135e3318c46b9e71c7a31c22859">getVertexDataCloud</a> () const</td></tr>
<tr class="memdesc:ab1237135e3318c46b9e71c7a31c22859"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the stored vertex data. <br /></td></tr>
<tr class="separator:ab1237135e3318c46b9e71c7a31c22859"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6337a69d1d50217e4de671d3025f236e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6337a69d1d50217e4de671d3025f236e">setVertexDataCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a> &amp;vertex_data_cloud)</td></tr>
<tr class="memdesc:a6337a69d1d50217e4de671d3025f236e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the stored vertex data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a6337a69d1d50217e4de671d3025f236e">更多...</a><br /></td></tr>
<tr class="separator:a6337a69d1d50217e4de671d3025f236e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac697d98117bd574577def3475ad6f1d5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac697d98117bd574577def3475ad6f1d5">getHalfEdgeDataCloud</a> ()</td></tr>
<tr class="memdesc:ac697d98117bd574577def3475ad6f1d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get access to the stored half-edge data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#ac697d98117bd574577def3475ad6f1d5">更多...</a><br /></td></tr>
<tr class="separator:ac697d98117bd574577def3475ad6f1d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2b67d93436ffa5f81b370d9f0a4ab608"><td class="memItemLeft" align="right" valign="top"><a id="a2b67d93436ffa5f81b370d9f0a4ab608"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a2b67d93436ffa5f81b370d9f0a4ab608">getHalfEdgeDataCloud</a> () const</td></tr>
<tr class="memdesc:a2b67d93436ffa5f81b370d9f0a4ab608"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the stored half-edge data. <br /></td></tr>
<tr class="separator:a2b67d93436ffa5f81b370d9f0a4ab608"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4848866528fc0e8a64197f91498defa0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a4848866528fc0e8a64197f91498defa0">setHalfEdgeDataCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a> &amp;half_edge_data_cloud)</td></tr>
<tr class="memdesc:a4848866528fc0e8a64197f91498defa0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the stored half-edge data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a4848866528fc0e8a64197f91498defa0">更多...</a><br /></td></tr>
<tr class="separator:a4848866528fc0e8a64197f91498defa0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68c13e85605765881e3d885197f35fc3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a68c13e85605765881e3d885197f35fc3">getEdgeDataCloud</a> ()</td></tr>
<tr class="memdesc:a68c13e85605765881e3d885197f35fc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get access to the stored edge data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a68c13e85605765881e3d885197f35fc3">更多...</a><br /></td></tr>
<tr class="separator:a68c13e85605765881e3d885197f35fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acf44dfefcbc86259db6dd20b267bc8de"><td class="memItemLeft" align="right" valign="top"><a id="acf44dfefcbc86259db6dd20b267bc8de"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#acf44dfefcbc86259db6dd20b267bc8de">getEdgeDataCloud</a> () const</td></tr>
<tr class="memdesc:acf44dfefcbc86259db6dd20b267bc8de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the stored edge data. <br /></td></tr>
<tr class="separator:acf44dfefcbc86259db6dd20b267bc8de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a365f1f65496b17f9ab5c51edae4a7782"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a365f1f65496b17f9ab5c51edae4a7782">setEdgeDataCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a> &amp;edge_data_cloud)</td></tr>
<tr class="memdesc:a365f1f65496b17f9ab5c51edae4a7782"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the stored edge data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a365f1f65496b17f9ab5c51edae4a7782">更多...</a><br /></td></tr>
<tr class="separator:a365f1f65496b17f9ab5c51edae4a7782"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5df66a29bc91a2129a9da83fdd9da7e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af5df66a29bc91a2129a9da83fdd9da7e">getFaceDataCloud</a> ()</td></tr>
<tr class="memdesc:af5df66a29bc91a2129a9da83fdd9da7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get access to the stored face data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#af5df66a29bc91a2129a9da83fdd9da7e">更多...</a><br /></td></tr>
<tr class="separator:af5df66a29bc91a2129a9da83fdd9da7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a112b693465d5fb31297509f081209c64"><td class="memItemLeft" align="right" valign="top"><a id="a112b693465d5fb31297509f081209c64"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a112b693465d5fb31297509f081209c64">getFaceDataCloud</a> () const</td></tr>
<tr class="memdesc:a112b693465d5fb31297509f081209c64"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the stored face data. <br /></td></tr>
<tr class="separator:a112b693465d5fb31297509f081209c64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a582a4ea3ce387865fde824816fffb6ca"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a582a4ea3ce387865fde824816fffb6ca">setFaceDataCloud</a> (const <a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a> &amp;face_data_cloud)</td></tr>
<tr class="memdesc:a582a4ea3ce387865fde824816fffb6ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change the stored face data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a582a4ea3ce387865fde824816fffb6ca">更多...</a><br /></td></tr>
<tr class="separator:a582a4ea3ce387865fde824816fffb6ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a79c2cc7cfbccb8dbb5769c55a7b15d04"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a79c2cc7cfbccb8dbb5769c55a7b15d04">getVertexIndex</a> (const VertexData &amp;vertex_data) const</td></tr>
<tr class="memdesc:a79c2cc7cfbccb8dbb5769c55a7b15d04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index associated to the given vertex data.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a79c2cc7cfbccb8dbb5769c55a7b15d04">更多...</a><br /></td></tr>
<tr class="separator:a79c2cc7cfbccb8dbb5769c55a7b15d04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a83029bd5d8fa5633edf20cc0f45473"><td class="memItemLeft" align="right" valign="top"><a id="a2a83029bd5d8fa5633edf20cc0f45473"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a83029bd5d8fa5633edf20cc0f45473">getHalfEdgeIndex</a> (const HalfEdgeData &amp;half_edge_data) const</td></tr>
<tr class="memdesc:a2a83029bd5d8fa5633edf20cc0f45473"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index associated to the given half-edge data. <br /></td></tr>
<tr class="separator:a2a83029bd5d8fa5633edf20cc0f45473"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1f085bbc37e1866a850d6707f2839877"><td class="memItemLeft" align="right" valign="top"><a id="a1f085bbc37e1866a850d6707f2839877"></a>
<a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1f085bbc37e1866a850d6707f2839877">getEdgeIndex</a> (const EdgeData &amp;edge_data) const</td></tr>
<tr class="memdesc:a1f085bbc37e1866a850d6707f2839877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index associated to the given edge data. <br /></td></tr>
<tr class="separator:a1f085bbc37e1866a850d6707f2839877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad8c950b6fb87139e3c394ec567782d12"><td class="memItemLeft" align="right" valign="top"><a id="ad8c950b6fb87139e3c394ec567782d12"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ad8c950b6fb87139e3c394ec567782d12">getFaceIndex</a> (const FaceData &amp;face_data) const</td></tr>
<tr class="memdesc:ad8c950b6fb87139e3c394ec567782d12"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the index associated to the given face data. <br /></td></tr>
<tr class="separator:ad8c950b6fb87139e3c394ec567782d12"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-types"></a>
Protected 类型</h2></td></tr>
<tr class="memitem:a8619f7cbe981637c2a29b0d35b2e4c02"><td class="memItemLeft" align="right" valign="top"><a id="a8619f7cbe981637c2a29b0d35b2e4c02"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_vertex.html">pcl::geometry::Vertex</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Vertex</b></td></tr>
<tr class="separator:a8619f7cbe981637c2a29b0d35b2e4c02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ababc6715cf3bf06bbd9aef400468124e"><td class="memItemLeft" align="right" valign="top"><a id="ababc6715cf3bf06bbd9aef400468124e"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_half_edge.html">pcl::geometry::HalfEdge</a>&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdge</b></td></tr>
<tr class="separator:ababc6715cf3bf06bbd9aef400468124e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f199c36675df1f137d2a77ef4e9b097"><td class="memItemLeft" align="right" valign="top"><a id="a7f199c36675df1f137d2a77ef4e9b097"></a>
typedef <a class="el" href="classpcl_1_1geometry_1_1_face.html">pcl::geometry::Face</a>&#160;</td><td class="memItemRight" valign="bottom"><b>Face</b></td></tr>
<tr class="separator:a7f199c36675df1f137d2a77ef4e9b097"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb5ff96575a54636921fc4d847e61fb0"><td class="memItemLeft" align="right" valign="top"><a id="aeb5ff96575a54636921fc4d847e61fb0"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_vertex.html">Vertex</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Vertices</b></td></tr>
<tr class="separator:aeb5ff96575a54636921fc4d847e61fb0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa29091e7200780b852a6283da92c4b75"><td class="memItemLeft" align="right" valign="top"><a id="aa29091e7200780b852a6283da92c4b75"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_half_edge.html">HalfEdge</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdges</b></td></tr>
<tr class="separator:aa29091e7200780b852a6283da92c4b75"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fd8dc52d55d9a9a7bde5a6a24915a76"><td class="memItemLeft" align="right" valign="top"><a id="a4fd8dc52d55d9a9a7bde5a6a24915a76"></a>
typedef std::vector&lt; <a class="el" href="classpcl_1_1geometry_1_1_face.html">Face</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Faces</b></td></tr>
<tr class="separator:a4fd8dc52d55d9a9a7bde5a6a24915a76"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac61196a650c47eab5c0f553afc1e176c"><td class="memItemLeft" align="right" valign="top"><a id="ac61196a650c47eab5c0f553afc1e176c"></a>
typedef Vertices::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>VertexIterator</b></td></tr>
<tr class="separator:ac61196a650c47eab5c0f553afc1e176c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e2eb7f569dc3e4d676d837711817b83"><td class="memItemLeft" align="right" valign="top"><a id="a6e2eb7f569dc3e4d676d837711817b83"></a>
typedef HalfEdges::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeIterator</b></td></tr>
<tr class="separator:a6e2eb7f569dc3e4d676d837711817b83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac06435fed5bfae0dcd68682d1675575e"><td class="memItemLeft" align="right" valign="top"><a id="ac06435fed5bfae0dcd68682d1675575e"></a>
typedef Faces::iterator&#160;</td><td class="memItemRight" valign="bottom"><b>FaceIterator</b></td></tr>
<tr class="separator:ac06435fed5bfae0dcd68682d1675575e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a125b38601370e10ba78110bee1f69669"><td class="memItemLeft" align="right" valign="top"><a id="a125b38601370e10ba78110bee1f69669"></a>
typedef Vertices::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>VertexConstIterator</b></td></tr>
<tr class="separator:a125b38601370e10ba78110bee1f69669"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa92e869557a580a2d61b6ae58262bcf5"><td class="memItemLeft" align="right" valign="top"><a id="aa92e869557a580a2d61b6ae58262bcf5"></a>
typedef HalfEdges::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>HalfEdgeConstIterator</b></td></tr>
<tr class="separator:aa92e869557a580a2d61b6ae58262bcf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a350424c873f6e03d8251a46fae28a13b"><td class="memItemLeft" align="right" valign="top"><a id="a350424c873f6e03d8251a46fae28a13b"></a>
typedef Faces::const_iterator&#160;</td><td class="memItemRight" valign="bottom"><b>FaceConstIterator</b></td></tr>
<tr class="separator:a350424c873f6e03d8251a46fae28a13b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a5bfa23555bbed2097f7e55ea563c48c8"><td class="memItemLeft" align="right" valign="top"><a id="a5bfa23555bbed2097f7e55ea563c48c8"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a5bfa23555bbed2097f7e55ea563c48c8">addFaceImplBase</a> (const VertexIndices &amp;vertices, const FaceData &amp;face_data, const EdgeData &amp;edge_data, const HalfEdgeData &amp;half_edge_data)</td></tr>
<tr class="memdesc:a5bfa23555bbed2097f7e55ea563c48c8"><td class="mdescLeft">&#160;</td><td class="mdescRight">General implementation of addFace. <br /></td></tr>
<tr class="separator:a5bfa23555bbed2097f7e55ea563c48c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfe2a701da9f75051cbff2f35f2ce4a1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#adfe2a701da9f75051cbff2f35f2ce4a1">addEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_a, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, const HalfEdgeData &amp;he_data, const EdgeData &amp;edge_data)</td></tr>
<tr class="memdesc:adfe2a701da9f75051cbff2f35f2ce4a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an edge between the two given vertices and connect them with the vertices.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#adfe2a701da9f75051cbff2f35f2ce4a1">更多...</a><br /></td></tr>
<tr class="separator:adfe2a701da9f75051cbff2f35f2ce4a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2ca59e87e57aeae49727ac40f89686c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af2ca59e87e57aeae49727ac40f89686c">checkTopology1</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_a, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, std::vector&lt; bool &gt;::reference is_new_ab, boost::true_type) const</td></tr>
<tr class="memdesc:af2ca59e87e57aeae49727ac40f89686c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the edge between the two vertices can be added.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#af2ca59e87e57aeae49727ac40f89686c">更多...</a><br /></td></tr>
<tr class="separator:af2ca59e87e57aeae49727ac40f89686c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3afd6487aca2233205b4ce813ccd7be4"><td class="memItemLeft" align="right" valign="top"><a id="a3afd6487aca2233205b4ce813ccd7be4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a3afd6487aca2233205b4ce813ccd7be4">checkTopology1</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_a, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, std::vector&lt; bool &gt;::reference is_new_ab, boost::false_type) const</td></tr>
<tr class="memdesc:a3afd6487aca2233205b4ce813ccd7be4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non manifold version of checkTopology1 <br /></td></tr>
<tr class="separator:a3afd6487aca2233205b4ce813ccd7be4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dab4428fb080c797338827ed7dd96d4"><td class="memItemLeft" align="right" valign="top"><a id="a6dab4428fb080c797338827ed7dd96d4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6dab4428fb080c797338827ed7dd96d4">checkTopology2</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const bool is_new_ab, const bool is_new_bc, const bool is_isolated_b, std::vector&lt; bool &gt;::reference, <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, boost::true_type) const</td></tr>
<tr class="memdesc:a6dab4428fb080c797338827ed7dd96d4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the face may be added (mesh does not become non-manifold). <br /></td></tr>
<tr class="separator:a6dab4428fb080c797338827ed7dd96d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6196f8dc951e889c7b5a23c841939606"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6196f8dc951e889c7b5a23c841939606">checkTopology2</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const bool is_new_ab, const bool is_new_bc, const bool, std::vector&lt; bool &gt;::reference make_adjacent_ab_bc, <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_free_half_edge, boost::false_type) const</td></tr>
<tr class="memdesc:a6196f8dc951e889c7b5a23c841939606"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the half-edge bc is the next half-edge of ab.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a6196f8dc951e889c7b5a23c841939606">更多...</a><br /></td></tr>
<tr class="separator:a6196f8dc951e889c7b5a23c841939606"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d9496611b3a0df8f2c769dc7899ed05"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9d9496611b3a0df8f2c769dc7899ed05">makeAdjacent</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_free_half_edge)</td></tr>
<tr class="memdesc:a9d9496611b3a0df8f2c769dc7899ed05"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make the half-edges bc the next half-edge of ab.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a9d9496611b3a0df8f2c769dc7899ed05">更多...</a><br /></td></tr>
<tr class="separator:a9d9496611b3a0df8f2c769dc7899ed05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a275168373d4ed9f2787abd3be6f78597"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a275168373d4ed9f2787abd3be6f78597">connectFace</a> (const HalfEdgeIndices &amp;inner_he, const FaceData &amp;face_data)</td></tr>
<tr class="memdesc:a275168373d4ed9f2787abd3be6f78597"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a face to the mesh and connect it to the half-edges.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#a275168373d4ed9f2787abd3be6f78597">更多...</a><br /></td></tr>
<tr class="separator:a275168373d4ed9f2787abd3be6f78597"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a953b3cece4af98f743a73450c557fdf3"><td class="memItemLeft" align="right" valign="top"><a id="a953b3cece4af98f743a73450c557fdf3"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a953b3cece4af98f743a73450c557fdf3">connectPrevNext</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc)</td></tr>
<tr class="memdesc:a953b3cece4af98f743a73450c557fdf3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connect the next and prev indices of the two half-edges with each other. <br /></td></tr>
<tr class="separator:a953b3cece4af98f743a73450c557fdf3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4114e62f96a84751f1b0b8abbca760c6"><td class="memItemLeft" align="right" valign="top"><a id="a4114e62f96a84751f1b0b8abbca760c6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a4114e62f96a84751f1b0b8abbca760c6">connectNewNew</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, boost::true_type)</td></tr>
<tr class="memdesc:a4114e62f96a84751f1b0b8abbca760c6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both half-edges are new (manifold version). <br /></td></tr>
<tr class="separator:a4114e62f96a84751f1b0b8abbca760c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a251c66c8ea515e6bd0de7ebe7d37efde"><td class="memItemLeft" align="right" valign="top"><a id="a251c66c8ea515e6bd0de7ebe7d37efde"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a251c66c8ea515e6bd0de7ebe7d37efde">connectNewNew</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, boost::false_type)</td></tr>
<tr class="memdesc:a251c66c8ea515e6bd0de7ebe7d37efde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both half-edges are new (non-manifold version). <br /></td></tr>
<tr class="separator:a251c66c8ea515e6bd0de7ebe7d37efde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaa2e6107c5a5673f08b860d05ff0024"><td class="memItemLeft" align="right" valign="top"><a id="acaa2e6107c5a5673f08b860d05ff0024"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#acaa2e6107c5a5673f08b860d05ff0024">connectNewOld</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b)</td></tr>
<tr class="memdesc:acaa2e6107c5a5673f08b860d05ff0024"><td class="mdescLeft">&#160;</td><td class="mdescRight">The first half-edge is new. <br /></td></tr>
<tr class="separator:acaa2e6107c5a5673f08b860d05ff0024"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45023314f8c909925b671be55bc68a16"><td class="memItemLeft" align="right" valign="top"><a id="a45023314f8c909925b671be55bc68a16"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a45023314f8c909925b671be55bc68a16">connectOldNew</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b)</td></tr>
<tr class="memdesc:a45023314f8c909925b671be55bc68a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">The second half-edge is new. <br /></td></tr>
<tr class="separator:a45023314f8c909925b671be55bc68a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a26fea9d6bb071ed14dba8dd590cbab71"><td class="memItemLeft" align="right" valign="top"><a id="a26fea9d6bb071ed14dba8dd590cbab71"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a26fea9d6bb071ed14dba8dd590cbab71">connectOldOld</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;, boost::true_type)</td></tr>
<tr class="memdesc:a26fea9d6bb071ed14dba8dd590cbab71"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both half-edges are old (manifold version). <br /></td></tr>
<tr class="separator:a26fea9d6bb071ed14dba8dd590cbab71"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cc0af19e1d44db09308aa7735cc059f"><td class="memItemLeft" align="right" valign="top"><a id="a9cc0af19e1d44db09308aa7735cc059f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9cc0af19e1d44db09308aa7735cc059f">connectOldOld</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, boost::false_type)</td></tr>
<tr class="memdesc:a9cc0af19e1d44db09308aa7735cc059f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both half-edges are old (non-manifold version). <br /></td></tr>
<tr class="separator:a9cc0af19e1d44db09308aa7735cc059f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f0d60f62c1363856eb9dfe619f87db2"><td class="memTemplParams" colspan="2"><a id="a2f0d60f62c1363856eb9dfe619f87db2"></a>
template&lt;class DataT &gt; </td></tr>
<tr class="memitem:a2f0d60f62c1363856eb9dfe619f87db2"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; DataT &gt; &amp;cloud, const DataT &amp;data, boost::true_type)</td></tr>
<tr class="memdesc:a2f0d60f62c1363856eb9dfe619f87db2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add mesh data. <br /></td></tr>
<tr class="separator:a2f0d60f62c1363856eb9dfe619f87db2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae25ea8ed4d3bdb60f31c54c77952e1a5"><td class="memTemplParams" colspan="2"><a id="ae25ea8ed4d3bdb60f31c54c77952e1a5"></a>
template&lt;class DataT &gt; </td></tr>
<tr class="memitem:ae25ea8ed4d3bdb60f31c54c77952e1a5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae25ea8ed4d3bdb60f31c54c77952e1a5">addData</a> (<a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; DataT &gt; &amp;, const DataT &amp;, boost::false_type)</td></tr>
<tr class="memdesc:ae25ea8ed4d3bdb60f31c54c77952e1a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing. <br /></td></tr>
<tr class="separator:ae25ea8ed4d3bdb60f31c54c77952e1a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8468ea5d1de5586172d54becd3fabef8"><td class="memItemLeft" align="right" valign="top"><a id="a8468ea5d1de5586172d54becd3fabef8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a8468ea5d1de5586172d54becd3fabef8">deleteFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, boost::true_type)</td></tr>
<tr class="memdesc:a8468ea5d1de5586172d54becd3fabef8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manifold version of deleteFace. If the mesh becomes non-manifold due to the delete operation the faces around the non-manifold vertex are deleted until the mesh becomes manifold again. <br /></td></tr>
<tr class="separator:a8468ea5d1de5586172d54becd3fabef8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a766a074742c13a0c3f868c15f0c4001a"><td class="memItemLeft" align="right" valign="top"><a id="a766a074742c13a0c3f868c15f0c4001a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a766a074742c13a0c3f868c15f0c4001a">deleteFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, boost::false_type)</td></tr>
<tr class="memdesc:a766a074742c13a0c3f868c15f0c4001a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-manifold version of deleteFace. <br /></td></tr>
<tr class="separator:a766a074742c13a0c3f868c15f0c4001a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34a312e02ba5bd42a15bc8120ae6dbd9"><td class="memItemLeft" align="right" valign="top"><a id="a34a312e02ba5bd42a15bc8120ae6dbd9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a34a312e02ba5bd42a15bc8120ae6dbd9">reconnect</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_ab, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const bool is_boundary_ba, const bool is_boundary_cb)</td></tr>
<tr class="memdesc:a34a312e02ba5bd42a15bc8120ae6dbd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deconnect the input half-edges from the mesh and adjust the indices of the connected half-edges. <br /></td></tr>
<tr class="separator:a34a312e02ba5bd42a15bc8120ae6dbd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed7cccc92709ab4a78b6a67d1167b247"><td class="memItemLeft" align="right" valign="top"><a id="aed7cccc92709ab4a78b6a67d1167b247"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aed7cccc92709ab4a78b6a67d1167b247">reconnectNBNB</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_cb, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, boost::true_type)</td></tr>
<tr class="memdesc:aed7cccc92709ab4a78b6a67d1167b247"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both edges are not on the boundary. Manifold version. <br /></td></tr>
<tr class="separator:aed7cccc92709ab4a78b6a67d1167b247"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16306b8e5ec32045849cab9dc0cdbccc"><td class="memItemLeft" align="right" valign="top"><a id="a16306b8e5ec32045849cab9dc0cdbccc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a16306b8e5ec32045849cab9dc0cdbccc">reconnectNBNB</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he_bc, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_v_b, boost::false_type)</td></tr>
<tr class="memdesc:a16306b8e5ec32045849cab9dc0cdbccc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Both edges are not on the boundary. Non-manifold version. <br /></td></tr>
<tr class="separator:a16306b8e5ec32045849cab9dc0cdbccc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62b4389cf1d19c7ae829056888651b54"><td class="memItemLeft" align="right" valign="top"><a id="a62b4389cf1d19c7ae829056888651b54"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a62b4389cf1d19c7ae829056888651b54">markDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex)</td></tr>
<tr class="memdesc:a62b4389cf1d19c7ae829056888651b54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given vertex as deleted. <br /></td></tr>
<tr class="separator:a62b4389cf1d19c7ae829056888651b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fa46aeb0131a6e8ab988821626a9b34"><td class="memItemLeft" align="right" valign="top"><a id="a6fa46aeb0131a6e8ab988821626a9b34"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6fa46aeb0131a6e8ab988821626a9b34">markDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he)</td></tr>
<tr class="memdesc:a6fa46aeb0131a6e8ab988821626a9b34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given half-edge as deleted. <br /></td></tr>
<tr class="separator:a6fa46aeb0131a6e8ab988821626a9b34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac92c74ee55571dc25e99425f699f4aac"><td class="memItemLeft" align="right" valign="top"><a id="ac92c74ee55571dc25e99425f699f4aac"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac92c74ee55571dc25e99425f699f4aac">markDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;idx_edge)</td></tr>
<tr class="memdesc:ac92c74ee55571dc25e99425f699f4aac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given edge (both half-edges) as deleted. <br /></td></tr>
<tr class="separator:ac92c74ee55571dc25e99425f699f4aac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a528ba58fdc6198a6465134023503510f"><td class="memItemLeft" align="right" valign="top"><a id="a528ba58fdc6198a6465134023503510f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a528ba58fdc6198a6465134023503510f">markDeleted</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face)</td></tr>
<tr class="memdesc:a528ba58fdc6198a6465134023503510f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark the given face as deleted. <br /></td></tr>
<tr class="separator:a528ba58fdc6198a6465134023503510f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7bd1b1b2ca096ce00e42044b68bd0f2"><td class="memTemplParams" colspan="2">template&lt;class ElementContainerT , class DataContainerT , class IndexContainerT , class HasDataT &gt; </td></tr>
<tr class="memitem:af7bd1b1b2ca096ce00e42044b68bd0f2"><td class="memTemplItemLeft" align="right" valign="top">IndexContainerT&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af7bd1b1b2ca096ce00e42044b68bd0f2">remove</a> (ElementContainerT &amp;elements, DataContainerT &amp;data_cloud)</td></tr>
<tr class="memdesc:af7bd1b1b2ca096ce00e42044b68bd0f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes mesh elements and data that are marked as deleted from the container.  <a href="classpcl_1_1geometry_1_1_mesh_base.html#af7bd1b1b2ca096ce00e42044b68bd0f2">更多...</a><br /></td></tr>
<tr class="separator:af7bd1b1b2ca096ce00e42044b68bd0f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00d8dcea3af77289df1bfa6112e33894"><td class="memTemplParams" colspan="2"><a id="a00d8dcea3af77289df1bfa6112e33894"></a>
template&lt;class IteratorT &gt; </td></tr>
<tr class="memitem:a00d8dcea3af77289df1bfa6112e33894"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a00d8dcea3af77289df1bfa6112e33894">incrementIf</a> (IteratorT &amp;it, boost::true_type) const</td></tr>
<tr class="memdesc:a00d8dcea3af77289df1bfa6112e33894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increment the iterator. <br /></td></tr>
<tr class="separator:a00d8dcea3af77289df1bfa6112e33894"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aada17589194ee19a530459e023968f52"><td class="memTemplParams" colspan="2"><a id="aada17589194ee19a530459e023968f52"></a>
template&lt;class IteratorT &gt; </td></tr>
<tr class="memitem:aada17589194ee19a530459e023968f52"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aada17589194ee19a530459e023968f52">incrementIf</a> (IteratorT &amp;, boost::false_type) const</td></tr>
<tr class="memdesc:aada17589194ee19a530459e023968f52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing. <br /></td></tr>
<tr class="separator:aada17589194ee19a530459e023968f52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac30198b473de1a03abe20fb05464afb8"><td class="memTemplParams" colspan="2"><a id="ac30198b473de1a03abe20fb05464afb8"></a>
template&lt;class ConstIteratorT , class IteratorT &gt; </td></tr>
<tr class="memitem:ac30198b473de1a03abe20fb05464afb8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac30198b473de1a03abe20fb05464afb8">assignIf</a> (const ConstIteratorT source, IteratorT target, boost::true_type) const</td></tr>
<tr class="memdesc:ac30198b473de1a03abe20fb05464afb8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign the source iterator to the target iterator. <br /></td></tr>
<tr class="separator:ac30198b473de1a03abe20fb05464afb8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a643ad03f7a660359f41e38c3d0c9b426"><td class="memTemplParams" colspan="2"><a id="a643ad03f7a660359f41e38c3d0c9b426"></a>
template&lt;class ConstIteratorT , class IteratorT &gt; </td></tr>
<tr class="memitem:a643ad03f7a660359f41e38c3d0c9b426"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a643ad03f7a660359f41e38c3d0c9b426">assignIf</a> (const ConstIteratorT, IteratorT, boost::false_type) const</td></tr>
<tr class="memdesc:a643ad03f7a660359f41e38c3d0c9b426"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing. <br /></td></tr>
<tr class="separator:a643ad03f7a660359f41e38c3d0c9b426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02d2f05b6256c3ac6fca45151adbd3e9"><td class="memItemLeft" align="right" valign="top"><a id="a02d2f05b6256c3ac6fca45151adbd3e9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a02d2f05b6256c3ac6fca45151adbd3e9">setOutgoingHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_outgoing_half_edge)</td></tr>
<tr class="memdesc:a02d2f05b6256c3ac6fca45151adbd3e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the outgoing half-edge index to a given vertex. <br /></td></tr>
<tr class="separator:a02d2f05b6256c3ac6fca45151adbd3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8ab78ee0e1db2ce9c9d254f5b36b3cdd"><td class="memItemLeft" align="right" valign="top"><a id="a8ab78ee0e1db2ce9c9d254f5b36b3cdd"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a8ab78ee0e1db2ce9c9d254f5b36b3cdd">setTerminatingVertexIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge, const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_terminating_vertex)</td></tr>
<tr class="memdesc:a8ab78ee0e1db2ce9c9d254f5b36b3cdd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the terminating vertex index to a given half-edge. <br /></td></tr>
<tr class="separator:a8ab78ee0e1db2ce9c9d254f5b36b3cdd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b29a2c3e3faf15dd5030e0f6d9b99c7"><td class="memItemLeft" align="right" valign="top"><a id="a0b29a2c3e3faf15dd5030e0f6d9b99c7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a0b29a2c3e3faf15dd5030e0f6d9b99c7">setNextHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_next_half_edge)</td></tr>
<tr class="memdesc:a0b29a2c3e3faf15dd5030e0f6d9b99c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the next half_edge index to a given half-edge. <br /></td></tr>
<tr class="separator:a0b29a2c3e3faf15dd5030e0f6d9b99c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab2c06f58e2b38f903b2218ad7547bd0f"><td class="memItemLeft" align="right" valign="top"><a id="ab2c06f58e2b38f903b2218ad7547bd0f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ab2c06f58e2b38f903b2218ad7547bd0f">setPrevHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_prev_half_edge)</td></tr>
<tr class="memdesc:ab2c06f58e2b38f903b2218ad7547bd0f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the previous half-edge index to a given half-edge. <br /></td></tr>
<tr class="separator:ab2c06f58e2b38f903b2218ad7547bd0f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb4ece77ab1605520fec23946c585af8"><td class="memItemLeft" align="right" valign="top"><a id="adb4ece77ab1605520fec23946c585af8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#adb4ece77ab1605520fec23946c585af8">setFaceIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_half_edge, const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face)</td></tr>
<tr class="memdesc:adb4ece77ab1605520fec23946c585af8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the face index to a given half-edge. <br /></td></tr>
<tr class="separator:adb4ece77ab1605520fec23946c585af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae45961df8a57ff48f1d2d3d61b2e22e5"><td class="memItemLeft" align="right" valign="top"><a id="ae45961df8a57ff48f1d2d3d61b2e22e5"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae45961df8a57ff48f1d2d3d61b2e22e5">setInnerHalfEdgeIndex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_inner_half_edge)</td></tr>
<tr class="memdesc:ae45961df8a57ff48f1d2d3d61b2e22e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the inner half-edge index to a given face. <br /></td></tr>
<tr class="separator:ae45961df8a57ff48f1d2d3d61b2e22e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21d69163e63732aebf3cf693d624b772"><td class="memItemLeft" align="right" valign="top"><a id="a21d69163e63732aebf3cf693d624b772"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a21d69163e63732aebf3cf693d624b772">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, boost::true_type) const</td></tr>
<tr class="memdesc:a21d69163e63732aebf3cf693d624b772"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if any vertex of the face lies on the boundary. <br /></td></tr>
<tr class="separator:a21d69163e63732aebf3cf693d624b772"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a809976733aa66b8c8fe95423fe6135"><td class="memItemLeft" align="right" valign="top"><a id="a4a809976733aa66b8c8fe95423fe6135"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a4a809976733aa66b8c8fe95423fe6135">isBoundary</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, boost::false_type) const</td></tr>
<tr class="memdesc:a4a809976733aa66b8c8fe95423fe6135"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if any edge of the face lies on the boundary. <br /></td></tr>
<tr class="separator:a4a809976733aa66b8c8fe95423fe6135"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a787568a0b149684e3705d40c451297eb"><td class="memItemLeft" align="right" valign="top"><a id="a787568a0b149684e3705d40c451297eb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a787568a0b149684e3705d40c451297eb">isManifold</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;, boost::true_type) const</td></tr>
<tr class="memdesc:a787568a0b149684e3705d40c451297eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Always manifold. <br /></td></tr>
<tr class="separator:a787568a0b149684e3705d40c451297eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac1a03911040a6d3d1a216e53d9ebcb29"><td class="memItemLeft" align="right" valign="top"><a id="ac1a03911040a6d3d1a216e53d9ebcb29"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac1a03911040a6d3d1a216e53d9ebcb29">isManifold</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex, boost::false_type) const</td></tr>
<tr class="memdesc:ac1a03911040a6d3d1a216e53d9ebcb29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the given vertex is manifold. <br /></td></tr>
<tr class="separator:ac1a03911040a6d3d1a216e53d9ebcb29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a079dccf845645f0393d69b7d0023a085"><td class="memItemLeft" align="right" valign="top"><a id="a079dccf845645f0393d69b7d0023a085"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a079dccf845645f0393d69b7d0023a085">isManifold</a> (boost::true_type) const</td></tr>
<tr class="memdesc:a079dccf845645f0393d69b7d0023a085"><td class="mdescLeft">&#160;</td><td class="mdescRight">Always manifold. <br /></td></tr>
<tr class="separator:a079dccf845645f0393d69b7d0023a085"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb3c96f3094b1a279504d0fb9c5eba7e"><td class="memItemLeft" align="right" valign="top"><a id="afb3c96f3094b1a279504d0fb9c5eba7e"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#afb3c96f3094b1a279504d0fb9c5eba7e">isManifold</a> (boost::false_type) const</td></tr>
<tr class="memdesc:afb3c96f3094b1a279504d0fb9c5eba7e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if all vertices in the mesh are manifold. <br /></td></tr>
<tr class="separator:afb3c96f3094b1a279504d0fb9c5eba7e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6211a83e7ec8d9f66bf7abe4a63deecd"><td class="memTemplParams" colspan="2"><a id="a6211a83e7ec8d9f66bf7abe4a63deecd"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:a6211a83e7ec8d9f66bf7abe4a63deecd"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6211a83e7ec8d9f66bf7abe4a63deecd">reserveData</a> (DataCloudT &amp;cloud, const size_t n, boost::true_type) const</td></tr>
<tr class="memdesc:a6211a83e7ec8d9f66bf7abe4a63deecd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reserve storage space for the mesh data. <br /></td></tr>
<tr class="separator:a6211a83e7ec8d9f66bf7abe4a63deecd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77d2fcbf03177678ddf120724aa3aa06"><td class="memTemplParams" colspan="2"><a id="a77d2fcbf03177678ddf120724aa3aa06"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:a77d2fcbf03177678ddf120724aa3aa06"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a77d2fcbf03177678ddf120724aa3aa06">reserveData</a> (DataCloudT &amp;, const size_t, boost::false_type) const</td></tr>
<tr class="memdesc:a77d2fcbf03177678ddf120724aa3aa06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing <br /></td></tr>
<tr class="separator:a77d2fcbf03177678ddf120724aa3aa06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a6cde6548efcae7705e5af1d1510674"><td class="memTemplParams" colspan="2"><a id="a9a6cde6548efcae7705e5af1d1510674"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:a9a6cde6548efcae7705e5af1d1510674"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9a6cde6548efcae7705e5af1d1510674">resizeData</a> (DataCloudT &amp;, const size_t n, const typename DataCloudT::value_type &amp;data, boost::true_type) const</td></tr>
<tr class="memdesc:a9a6cde6548efcae7705e5af1d1510674"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resize the mesh data. <br /></td></tr>
<tr class="separator:a9a6cde6548efcae7705e5af1d1510674"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac604f2eb2c859766916bcf23cce0a06d"><td class="memTemplParams" colspan="2"><a id="ac604f2eb2c859766916bcf23cce0a06d"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:ac604f2eb2c859766916bcf23cce0a06d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac604f2eb2c859766916bcf23cce0a06d">resizeData</a> (DataCloudT &amp;, const size_t, const typename DataCloudT::value_type &amp;, boost::false_type) const</td></tr>
<tr class="memdesc:ac604f2eb2c859766916bcf23cce0a06d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing. <br /></td></tr>
<tr class="separator:ac604f2eb2c859766916bcf23cce0a06d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6005c01c43ae611bb64d04f338b11e8e"><td class="memTemplParams" colspan="2"><a id="a6005c01c43ae611bb64d04f338b11e8e"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:a6005c01c43ae611bb64d04f338b11e8e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a6005c01c43ae611bb64d04f338b11e8e">clearData</a> (DataCloudT &amp;cloud, boost::true_type) const</td></tr>
<tr class="memdesc:a6005c01c43ae611bb64d04f338b11e8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the mesh data. <br /></td></tr>
<tr class="separator:a6005c01c43ae611bb64d04f338b11e8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae790281e343db61f27f0a890f493201a"><td class="memTemplParams" colspan="2"><a id="ae790281e343db61f27f0a890f493201a"></a>
template&lt;class DataCloudT &gt; </td></tr>
<tr class="memitem:ae790281e343db61f27f0a890f493201a"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae790281e343db61f27f0a890f493201a">clearData</a> (DataCloudT &amp;, boost::false_type) const</td></tr>
<tr class="memdesc:ae790281e343db61f27f0a890f493201a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Does nothing. <br /></td></tr>
<tr class="separator:ae790281e343db61f27f0a890f493201a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a949065f206a49428ebc1169f39edab83"><td class="memItemLeft" align="right" valign="top"><a id="a949065f206a49428ebc1169f39edab83"></a>
<a class="el" href="classpcl_1_1geometry_1_1_vertex.html">Vertex</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a949065f206a49428ebc1169f39edab83">getVertex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex)</td></tr>
<tr class="memdesc:a949065f206a49428ebc1169f39edab83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the vertex for the given index. <br /></td></tr>
<tr class="separator:a949065f206a49428ebc1169f39edab83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a68751110b806710e024698cd613c32"><td class="memItemLeft" align="right" valign="top"><a id="a5a68751110b806710e024698cd613c32"></a>
<a class="el" href="classpcl_1_1geometry_1_1_vertex.html">Vertex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a5a68751110b806710e024698cd613c32">getVertex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex) const</td></tr>
<tr class="memdesc:a5a68751110b806710e024698cd613c32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the vertex for the given index. <br /></td></tr>
<tr class="separator:a5a68751110b806710e024698cd613c32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a74022f448b47a5b0b486133628b43da8"><td class="memItemLeft" align="right" valign="top"><a id="a74022f448b47a5b0b486133628b43da8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a74022f448b47a5b0b486133628b43da8">setVertex</a> (const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;idx_vertex, const <a class="el" href="classpcl_1_1geometry_1_1_vertex.html">Vertex</a> &amp;vertex)</td></tr>
<tr class="memdesc:a74022f448b47a5b0b486133628b43da8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the vertex at the given index. <br /></td></tr>
<tr class="separator:a74022f448b47a5b0b486133628b43da8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb6751c957f49de4295d345d724ce88c"><td class="memItemLeft" align="right" valign="top"><a id="afb6751c957f49de4295d345d724ce88c"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge.html">HalfEdge</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#afb6751c957f49de4295d345d724ce88c">getHalfEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he)</td></tr>
<tr class="memdesc:afb6751c957f49de4295d345d724ce88c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the half-edge for the given index. <br /></td></tr>
<tr class="separator:afb6751c957f49de4295d345d724ce88c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb42a465dc29719b7ccc1363230bedc"><td class="memItemLeft" align="right" valign="top"><a id="afcb42a465dc29719b7ccc1363230bedc"></a>
<a class="el" href="classpcl_1_1geometry_1_1_half_edge.html">HalfEdge</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#afcb42a465dc29719b7ccc1363230bedc">getHalfEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he) const</td></tr>
<tr class="memdesc:afcb42a465dc29719b7ccc1363230bedc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the half-edge for the given index. <br /></td></tr>
<tr class="separator:afcb42a465dc29719b7ccc1363230bedc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a266993b1bdf7095c0e75d3e80427bc7b"><td class="memItemLeft" align="right" valign="top"><a id="a266993b1bdf7095c0e75d3e80427bc7b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a266993b1bdf7095c0e75d3e80427bc7b">setHalfEdge</a> (const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;idx_he, const <a class="el" href="classpcl_1_1geometry_1_1_half_edge.html">HalfEdge</a> &amp;half_edge)</td></tr>
<tr class="memdesc:a266993b1bdf7095c0e75d3e80427bc7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the half-edge at the given index. <br /></td></tr>
<tr class="separator:a266993b1bdf7095c0e75d3e80427bc7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcb173f4e9c97479f64a351d9fab57d8"><td class="memItemLeft" align="right" valign="top"><a id="afcb173f4e9c97479f64a351d9fab57d8"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face.html">Face</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#afcb173f4e9c97479f64a351d9fab57d8">getFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face)</td></tr>
<tr class="memdesc:afcb173f4e9c97479f64a351d9fab57d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the face for the given index. <br /></td></tr>
<tr class="separator:afcb173f4e9c97479f64a351d9fab57d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9fd8168c9e0cfb2261289c053849e8d5"><td class="memItemLeft" align="right" valign="top"><a id="a9fd8168c9e0cfb2261289c053849e8d5"></a>
<a class="el" href="classpcl_1_1geometry_1_1_face.html">Face</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9fd8168c9e0cfb2261289c053849e8d5">getFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face) const</td></tr>
<tr class="memdesc:a9fd8168c9e0cfb2261289c053849e8d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the face for the given index. <br /></td></tr>
<tr class="separator:a9fd8168c9e0cfb2261289c053849e8d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5565dd87531f80e92d3bca5c70c92de"><td class="memItemLeft" align="right" valign="top"><a id="aa5565dd87531f80e92d3bca5c70c92de"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#aa5565dd87531f80e92d3bca5c70c92de">setFace</a> (const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;idx_face, const <a class="el" href="classpcl_1_1geometry_1_1_face.html">Face</a> &amp;face)</td></tr>
<tr class="memdesc:aa5565dd87531f80e92d3bca5c70c92de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the face at the given index. <br /></td></tr>
<tr class="separator:aa5565dd87531f80e92d3bca5c70c92de"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:ae472d8311af5200ab6d7d3347aab9fb1"><td class="memItemLeft" align="right" valign="top"><a id="ae472d8311af5200ab6d7d3347aab9fb1"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a></td></tr>
<tr class="memdesc:ae472d8311af5200ab6d7d3347aab9fb1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data stored for the vertices. <br /></td></tr>
<tr class="separator:ae472d8311af5200ab6d7d3347aab9fb1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac9ed388ef2ab0769901c953146946294"><td class="memItemLeft" align="right" valign="top"><a id="ac9ed388ef2ab0769901c953146946294"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a></td></tr>
<tr class="memdesc:ac9ed388ef2ab0769901c953146946294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data stored for the half-edges. <br /></td></tr>
<tr class="separator:ac9ed388ef2ab0769901c953146946294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae6cc2e588af6754985ebb958a1835c91"><td class="memItemLeft" align="right" valign="top"><a id="ae6cc2e588af6754985ebb958a1835c91"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a></td></tr>
<tr class="memdesc:ae6cc2e588af6754985ebb958a1835c91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data stored for the edges. <br /></td></tr>
<tr class="separator:ae6cc2e588af6754985ebb958a1835c91"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a0de549a87f8926f4fa2d99d19873a9"><td class="memItemLeft" align="right" valign="top"><a id="a2a0de549a87f8926f4fa2d99d19873a9"></a>
<a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a></td></tr>
<tr class="memdesc:a2a0de549a87f8926f4fa2d99d19873a9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data stored for the faces. <br /></td></tr>
<tr class="separator:a2a0de549a87f8926f4fa2d99d19873a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af19892220ae9323428a6544bda84658b"><td class="memItemLeft" align="right" valign="top"><a id="af19892220ae9323428a6544bda84658b"></a>
Vertices&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">vertices_</a></td></tr>
<tr class="memdesc:af19892220ae9323428a6544bda84658b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connectivity information for the vertices. <br /></td></tr>
<tr class="separator:af19892220ae9323428a6544bda84658b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43f1f694e8cc619c619940e96c55b36d"><td class="memItemLeft" align="right" valign="top"><a id="a43f1f694e8cc619c619940e96c55b36d"></a>
HalfEdges&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a></td></tr>
<tr class="memdesc:a43f1f694e8cc619c619940e96c55b36d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connectivity information for the half-edges. <br /></td></tr>
<tr class="separator:a43f1f694e8cc619c619940e96c55b36d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b3dcd0be1230d8cc27ed70a0aaac8d0"><td class="memItemLeft" align="right" valign="top"><a id="a8b3dcd0be1230d8cc27ed70a0aaac8d0"></a>
Faces&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">faces_</a></td></tr>
<tr class="memdesc:a8b3dcd0be1230d8cc27ed70a0aaac8d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connectivity information for the faces. <br /></td></tr>
<tr class="separator:a8b3dcd0be1230d8cc27ed70a0aaac8d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af038161584c247bc21d6baaeb52ffcdf"><td class="memItemLeft" align="right" valign="top"><a id="af038161584c247bc21d6baaeb52ffcdf"></a>
HalfEdgeIndices&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af038161584c247bc21d6baaeb52ffcdf">inner_he_</a></td></tr>
<tr class="memdesc:af038161584c247bc21d6baaeb52ffcdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for addFaceImplBase and deleteFace. <br /></td></tr>
<tr class="separator:af038161584c247bc21d6baaeb52ffcdf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9be3165b6f4a99da9701ebd33169cba5"><td class="memItemLeft" align="right" valign="top"><a id="a9be3165b6f4a99da9701ebd33169cba5"></a>
HalfEdgeIndices&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a9be3165b6f4a99da9701ebd33169cba5">free_he_</a></td></tr>
<tr class="memdesc:a9be3165b6f4a99da9701ebd33169cba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for addFaceImplBase. <br /></td></tr>
<tr class="separator:a9be3165b6f4a99da9701ebd33169cba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd15b09cbebf457d9e6886c87704f22"><td class="memItemLeft" align="right" valign="top"><a id="a8cd15b09cbebf457d9e6886c87704f22"></a>
std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a8cd15b09cbebf457d9e6886c87704f22">is_new_</a></td></tr>
<tr class="memdesc:a8cd15b09cbebf457d9e6886c87704f22"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for addFaceImplBase. <br /></td></tr>
<tr class="separator:a8cd15b09cbebf457d9e6886c87704f22"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af37b14f3d563a9bda93403082f26917f"><td class="memItemLeft" align="right" valign="top"><a id="af37b14f3d563a9bda93403082f26917f"></a>
std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#af37b14f3d563a9bda93403082f26917f">make_adjacent_</a></td></tr>
<tr class="memdesc:af37b14f3d563a9bda93403082f26917f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for addFaceImplBase. <br /></td></tr>
<tr class="separator:af37b14f3d563a9bda93403082f26917f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b4226400b93828d6313374f2d1f69af"><td class="memItemLeft" align="right" valign="top"><a id="a1b4226400b93828d6313374f2d1f69af"></a>
std::vector&lt; bool &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a1b4226400b93828d6313374f2d1f69af">is_boundary_</a></td></tr>
<tr class="memdesc:a1b4226400b93828d6313374f2d1f69af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for deleteFace. <br /></td></tr>
<tr class="separator:a1b4226400b93828d6313374f2d1f69af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97f75dffac433d99357930f394968c81"><td class="memItemLeft" align="right" valign="top"><a id="a97f75dffac433d99357930f394968c81"></a>
FaceIndices&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">delete_faces_vertex_</a></td></tr>
<tr class="memdesc:a97f75dffac433d99357930f394968c81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for deleteVertex. <br /></td></tr>
<tr class="separator:a97f75dffac433d99357930f394968c81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a252af6e45d7db3021acee62ff2558a3a"><td class="memItemLeft" align="right" valign="top"><a id="a252af6e45d7db3021acee62ff2558a3a"></a>
FaceIndices&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html#a252af6e45d7db3021acee62ff2558a3a">delete_faces_face_</a></td></tr>
<tr class="memdesc:a252af6e45d7db3021acee62ff2558a3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Storage for deleteFace. <br /></td></tr>
<tr class="separator:a252af6e45d7db3021acee62ff2558a3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:a911d805527382c9969e3c0684075cc56"><td class="memTemplParams" colspan="2"><a id="a911d805527382c9969e3c0684075cc56"></a>
template&lt;class MeshT &gt; </td></tr>
<tr class="memitem:a911d805527382c9969e3c0684075cc56"><td class="memTemplItemLeft" align="right" valign="top">class&#160;</td><td class="memTemplItemRight" valign="bottom"><b>pcl::geometry::MeshIO</b></td></tr>
<tr class="separator:a911d805527382c9969e3c0684075cc56"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;class DerivedT, class MeshTraitsT, class MeshTagT&gt;<br />
class pcl::geometry::MeshBase&lt; DerivedT, MeshTraitsT, MeshTagT &gt;</h3>

<p>Base class for the half-edge mesh. </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">DerivedT</td><td>Has to implement the method 'addFaceImpl'. Please have a look at <a class="el" href="classpcl_1_1geometry_1_1_triangle_mesh.html" title="Half-edge mesh that can only store triangles.">pcl::geometry::TriangleMesh</a>, <a class="el" href="classpcl_1_1geometry_1_1_quad_mesh.html" title="Half-edge mesh that can only store quads.">pcl::geometry::QuadMesh</a> and <a class="el" href="classpcl_1_1geometry_1_1_polygon_mesh.html" title="General half-edge mesh that can store any polygon with a minimum number of vertices of 3.">pcl::geometry::PolygonMesh</a>. </td></tr>
    <tr><td class="paramname">MeshTraitsT</td><td>Please have a look at <a class="el" href="structpcl_1_1geometry_1_1_default_mesh_traits.html" title="The mesh traits are used to set up compile time settings for the mesh.">pcl::geometry::DefaultMeshTraits</a>. </td></tr>
    <tr><td class="paramname">MeshTagT</td><td>Tag describing the type of the mesh, e.g. <a class="el" href="structpcl_1_1geometry_1_1_triangle_mesh_tag.html" title="Tag describing the type of the mesh.">TriangleMeshTag</a>, <a class="el" href="structpcl_1_1geometry_1_1_quad_mesh_tag.html" title="Tag describing the type of the mesh.">QuadMeshTag</a>, <a class="el" href="structpcl_1_1geometry_1_1_polygon_mesh_tag.html" title="Tag describing the type of the mesh.">PolygonMeshTag</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section author"><dt>作者</dt><dd>Martin Saelzle</dd></dl>
<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000009">待办事项:</a></b></dt><dd>Add documentation </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="adfe2a701da9f75051cbff2f35f2ce4a1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adfe2a701da9f75051cbff2f35f2ce4a1">&#9670;&nbsp;</a></span>addEdge()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::addEdge </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_v_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_v_b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const HalfEdgeData &amp;&#160;</td>
          <td class="paramname"><em>he_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const EdgeData &amp;&#160;</td>
          <td class="paramname"><em>edge_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add an edge between the two given vertices and connect them with the vertices. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_v_a</td><td>The first vertex index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_v_b</td><td>The second vertex index </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">he_data</td><td>Data associated with the half-edges. This is only added if the mesh has data associated with the half-edges. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">edge_data</td><td>Data associated with the edge. This is only added if the mesh has data associated with the edges. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Index to the half-edge from vertex a to vertex b. </dd></dl>
<div class="fragment"><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;        {</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;          <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>.push_back (HalfEdge (idx_v_b));</div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;          <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>.push_back (HalfEdge (idx_v_a));</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a>, he_data  , HasHalfEdgeData ());</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a>, he_data  , HasHalfEdgeData ());</div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>     , edge_data, HasEdgeData     ());</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; </div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;          <span class="keywordflow">return</span> (HalfEdgeIndex (<span class="keyword">static_cast &lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>.size () - 2)));</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a2f0d60f62c1363856eb9dfe619f87db2"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">pcl::geometry::MeshBase::addData</a></div><div class="ttdeci">void addData(pcl::PointCloud&lt; DataT &gt; &amp;cloud, const DataT &amp;data, boost::true_type)</div><div class="ttdoc">Add mesh data.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1520</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a43f1f694e8cc619c619940e96c55b36d"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">pcl::geometry::MeshBase::half_edges_</a></div><div class="ttdeci">HalfEdges half_edges_</div><div class="ttdoc">Connectivity information for the half-edges.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2117</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ac9ed388ef2ab0769901c953146946294"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">pcl::geometry::MeshBase::half_edge_data_cloud_</a></div><div class="ttdeci">HalfEdgeDataCloud half_edge_data_cloud_</div><div class="ttdoc">Data stored for the half-edges.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2105</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ae6cc2e588af6754985ebb958a1835c91"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">pcl::geometry::MeshBase::edge_data_cloud_</a></div><div class="ttdeci">EdgeDataCloud edge_data_cloud_</div><div class="ttdoc">Data stored for the edges.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2108</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a9405be1d72b2a7bb1ec0bdc5c13c297a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9405be1d72b2a7bb1ec0bdc5c13c297a">&#9670;&nbsp;</a></span>addFace()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::addFace </td>
          <td>(</td>
          <td class="paramtype">const VertexIndices &amp;&#160;</td>
          <td class="paramname"><em>vertices</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FaceData &amp;&#160;</td>
          <td class="paramname"><em>face_data</em> = <code>FaceData&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const EdgeData &amp;&#160;</td>
          <td class="paramname"><em>edge_data</em> = <code>EdgeData&#160;()</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const HalfEdgeData &amp;&#160;</td>
          <td class="paramname"><em>half_edge_data</em> = <code>HalfEdgeData&#160;()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a face to the mesh. Data is only added if it is associated with the elements. The last vertex is connected with the first one. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">vertices</td><td>Indices to the vertices of the new face. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">face_data</td><td>Data that is set for the face. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">half_edge_data</td><td>Data that is set for all added half-edges. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">edge_data</td><td>Data that is set for all added edges. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Index to the new face. Failure is signaled by returning an invalid face index. </dd></dl>
<dl class="section warning"><dt>警告</dt><dd>The vertices must be valid and unique (each vertex may be contained only once). Not complying with this requirement results in undefined behavior! </dd></dl>
<div class="fragment"><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        {</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;          <span class="comment">// NOTE: The derived class has to implement addFaceImpl. If needed it can use the general method addFaceImplBase.</span></div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;          <span class="keywordflow">return</span> (<span class="keyword">static_cast &lt;</span>Derived*<span class="keyword">&gt;</span> (<span class="keyword">this</span>)-&gt;addFaceImpl (vertices, face_data, edge_data, half_edge_data));</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aac6156a983fe17684d23c56a17b4c7ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac6156a983fe17684d23c56a17b4c7ff">&#9670;&nbsp;</a></span>addVertex()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::addVertex </td>
          <td>(</td>
          <td class="paramtype">const VertexData &amp;&#160;</td>
          <td class="paramname"><em>vertex_data</em> = <code>VertexData&#160;()</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a vertex to the mesh. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">vertex_data</td><td>Data that is stored in the vertex. This is only added if the mesh has data associated with the vertices. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Index to the new vertex. </dd></dl>
<div class="fragment"><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;        {</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;          <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">vertices_</a>.push_back (Vertex ());</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>, vertex_data, HasVertexData ());</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;          <span class="keywordflow">return</span> (VertexIndex (<span class="keyword">static_cast &lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a52baa83cf38a51bf35ab81a4d2d456c2">sizeVertices</a> () - 1)));</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a52baa83cf38a51bf35ab81a4d2d456c2"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a52baa83cf38a51bf35ab81a4d2d456c2">pcl::geometry::MeshBase::sizeVertices</a></div><div class="ttdeci">size_t sizeVertices() const</div><div class="ttdoc">Get the number of the vertices.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:763</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ae472d8311af5200ab6d7d3347aab9fb1"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">pcl::geometry::MeshBase::vertex_data_cloud_</a></div><div class="ttdeci">VertexDataCloud vertex_data_cloud_</div><div class="ttdoc">Data stored for the vertices.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2102</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_af19892220ae9323428a6544bda84658b"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">pcl::geometry::MeshBase::vertices_</a></div><div class="ttdeci">Vertices vertices_</div><div class="ttdoc">Connectivity information for the vertices.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2114</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af2ca59e87e57aeae49727ac40f89686c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2ca59e87e57aeae49727ac40f89686c">&#9670;&nbsp;</a></span>checkTopology1()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::checkTopology1 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_v_a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_v_b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he_ab</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; bool &gt;::reference&#160;</td>
          <td class="paramname"><em>is_new_ab</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::true_type&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the edge between the two vertices can be added. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_v_a</td><td>Index to the first vertex. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_v_b</td><td>Index to the second vertex. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">idx_he_ab</td><td>Index to the half-edge ab if is_new_ab=false. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">is_new_ab</td><td>true if the edge between the vertices exists already. Must be initialized with true! </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the half-edge may be added. </dd></dl>
<div class="fragment"><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;        {</div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;          is_new_ab = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a9cbfbb8798253ce09f52fec701ee3aa7">isIsolated</a> (idx_v_a)) <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; </div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;          idx_he_ab = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa272421af280455cc40159a9726053a7">getOutgoingHalfEdgeIndex</a> (idx_v_a);</div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; </div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;          <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (idx_he_ab))                          <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace722a9209cf91e0f4a1be62ed9ace8d">getTerminatingVertexIndex</a> (idx_he_ab) == idx_v_b) is_new_ab = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;          <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a1318e10020901a4de7eb5bdd947cf669"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">pcl::geometry::MeshBase::isBoundary</a></div><div class="ttdeci">bool isBoundary(const VertexIndex &amp;idx_vertex) const</div><div class="ttdoc">Check if the given vertex lies on the boundary. Isolated vertices are considered to be on the boundar...</div><div class="ttdef"><b>Definition:</b> mesh_base.h:695</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a9cbfbb8798253ce09f52fec701ee3aa7"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a9cbfbb8798253ce09f52fec701ee3aa7">pcl::geometry::MeshBase::isIsolated</a></div><div class="ttdeci">bool isIsolated(const VertexIndex &amp;idx_vertex) const</div><div class="ttdoc">Check if the given vertex is isolated (not connected to other elements).</div><div class="ttdef"><b>Definition:</b> mesh_base.h:683</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_aa272421af280455cc40159a9726053a7"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#aa272421af280455cc40159a9726053a7">pcl::geometry::MeshBase::getOutgoingHalfEdgeIndex</a></div><div class="ttdeci">HalfEdgeIndex getOutgoingHalfEdgeIndex(const VertexIndex &amp;idx_vertex) const</div><div class="ttdoc">Get the outgoing half-edge index to a given vertex.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:339</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ace722a9209cf91e0f4a1be62ed9ace8d"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ace722a9209cf91e0f4a1be62ed9ace8d">pcl::geometry::MeshBase::getTerminatingVertexIndex</a></div><div class="ttdeci">VertexIndex getTerminatingVertexIndex(const HalfEdgeIndex &amp;idx_half_edge) const</div><div class="ttdoc">Get the terminating vertex index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:359</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a6196f8dc951e889c7b5a23c841939606"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6196f8dc951e889c7b5a23c841939606">&#9670;&nbsp;</a></span>checkTopology2()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::checkTopology2 </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he_ab</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he_bc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>is_new_ab</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>is_new_bc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname">, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; bool &gt;::reference&#160;</td>
          <td class="paramname"><em>make_adjacent_ab_bc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_free_half_edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">boost::false_type&#160;</td>
          <td class="paramname">&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the half-edge bc is the next half-edge of ab. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_he_ab</td><td>Index to the half-edge between the vertices a and b. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_he_bc</td><td>Index to the half-edge between the vertices b and c. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">is_new_ab</td><td>Half-edge ab is new. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">is_new_bc</td><td>Half-edge bc is new. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">make_adjacent_ab_bc</td><td>Half-edges ab and bc need to be made adjacent. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">idx_free_half_edge</td><td>Free half-edge (needed for makeAdjacent) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if addFace may be continued. </dd></dl>
<div class="fragment"><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;        {</div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;          <span class="keywordflow">if</span> (is_new_ab || is_new_bc)</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;          {</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;            make_adjacent_ab_bc = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>); <span class="comment">// Make adjacent is only needed for two old half-edges</span></div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;          }</div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; </div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a06dfbe1db8d1f9c24eff51ebd4852652">getNextHalfEdgeIndex</a> (idx_he_ab) == idx_he_bc)</div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;          {</div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;            make_adjacent_ab_bc = <span class="keyword">false</span>;</div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>); <span class="comment">// already adjacent</span></div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;          }</div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; </div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;          make_adjacent_ab_bc = <span class="keyword">true</span>;</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; </div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;          <span class="comment">// Find the next boundary half edge</span></div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;          IncomingHalfEdgeAroundVertexCirculator circ = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a3389ae4dcc4ca85e5adfdc33f48edc96">getIncomingHalfEdgeAroundVertexCirculator</a> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1f3e4696e4a6dd299dbe94fd23ffbb37">getOppositeHalfEdgeIndex</a> (idx_he_bc));</div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; </div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;          <span class="keywordflow">do</span> ++circ; <span class="keywordflow">while</span> (!this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (circ.getTargetIndex ()));</div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;          idx_free_half_edge = circ.getTargetIndex ();</div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; </div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;          <span class="comment">// This would detach the faces around the vertex from each other.</span></div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;          <span class="keywordflow">if</span> (circ.getTargetIndex () == idx_he_ab) <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;          <span class="keywordflow">else</span>                                     <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a06dfbe1db8d1f9c24eff51ebd4852652"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a06dfbe1db8d1f9c24eff51ebd4852652">pcl::geometry::MeshBase::getNextHalfEdgeIndex</a></div><div class="ttdeci">HalfEdgeIndex getNextHalfEdgeIndex(const HalfEdgeIndex &amp;idx_half_edge) const</div><div class="ttdoc">Get the next half-edge index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:384</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a1f3e4696e4a6dd299dbe94fd23ffbb37"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a1f3e4696e4a6dd299dbe94fd23ffbb37">pcl::geometry::MeshBase::getOppositeHalfEdgeIndex</a></div><div class="ttdeci">HalfEdgeIndex getOppositeHalfEdgeIndex(const HalfEdgeIndex &amp;idx_half_edge) const</div><div class="ttdoc">Get the opposite half-edge index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:375</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a3389ae4dcc4ca85e5adfdc33f48edc96"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a3389ae4dcc4ca85e5adfdc33f48edc96">pcl::geometry::MeshBase::getIncomingHalfEdgeAroundVertexCirculator</a></div><div class="ttdeci">IncomingHalfEdgeAroundVertexCirculator getIncomingHalfEdgeAroundVertexCirculator(const VertexIndex &amp;idx_vertex) const</div><div class="ttdef"><b>Definition:</b> mesh_base.h:472</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ad5c51551b9badbbe67526dbcf55a9efc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad5c51551b9badbbe67526dbcf55a9efc">&#9670;&nbsp;</a></span>cleanUp()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::cleanUp </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes all mesh elements and data that are marked as deleted. </p>
<dl class="section note"><dt>注解</dt><dd>This removes all isolated vertices as well. </dd></dl>
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;        {</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;          <span class="comment">// Copy the non-deleted mesh elements and store the index to their new position</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;          <span class="keyword">const</span> VertexIndices new_vertex_indices =</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;              this-&gt;remove &lt;Vertices, VertexDataCloud, VertexIndices, HasVertexData&gt;</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;              (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">vertices_</a>, <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>);</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;          <span class="keyword">const</span> HalfEdgeIndices new_half_edge_indices =</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;              this-&gt;remove &lt;HalfEdges, HalfEdgeDataCloud, HalfEdgeIndices, HasHalfEdgeData&gt;</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;              (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>, <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a>);</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;          <span class="keyword">const</span> FaceIndices new_face_indices =</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;              this-&gt;remove &lt;Faces, FaceDataCloud, FaceIndices, HasFaceData&gt;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;              (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">faces_</a>, <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a>);</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;          <span class="comment">// Remove deleted edge data</span></div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;          <span class="keywordflow">if</span> (HasEdgeData::value)</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;          {</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;            <span class="keyword">typename</span> EdgeDataCloud::const_iterator it_ed_old = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>.begin ();</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;            <span class="keyword">typename</span> EdgeDataCloud::iterator       it_ed_new = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>.begin ();</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;            HalfEdgeIndices::const_iterator it_ind     = new_half_edge_indices.begin ();</div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;            HalfEdgeIndices::const_iterator it_ind_end = new_half_edge_indices.end ();</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;            <span class="keywordflow">for</span> (; it_ind!=it_ind_end; it_ind+=2, ++it_ed_old)</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;            {</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;              <span class="keywordflow">if</span> (it_ind-&gt;isValid ())</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;              {</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                *it_ed_new++ = *it_ed_old;</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;              }</div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;            }</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;            <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>.<a class="code" href="classpcl_1_1_point_cloud.html#a2d60b6927b31ef89cd3b97e8173ea4aa">resize</a> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a479a1fb135090564e36a7ed69560c89a">sizeEdges</a> ());</div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;          }</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160; </div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;          <span class="comment">// Adjust the indices</span></div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;          <span class="keywordflow">for</span> (VertexIterator it = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">vertices_</a>.begin (); it!=<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#af19892220ae9323428a6544bda84658b">vertices_</a>.end (); ++it)</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;          {</div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;            <span class="keywordflow">if</span> (it-&gt;idx_outgoing_half_edge_.isValid ())</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;            {</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;              it-&gt;idx_outgoing_half_edge_ = new_half_edge_indices [it-&gt;idx_outgoing_half_edge_.get ()];</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;            }</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;          }</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;          <span class="keywordflow">for</span> (HalfEdgeIterator it = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>.begin (); it!=<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a43f1f694e8cc619c619940e96c55b36d">half_edges_</a>.end (); ++it)</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;          {</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;            it-&gt;idx_terminating_vertex_ = new_vertex_indices    [it-&gt;idx_terminating_vertex_.get ()];</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;            it-&gt;idx_next_half_edge_     = new_half_edge_indices [it-&gt;idx_next_half_edge_.get ()];</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;            it-&gt;idx_prev_half_edge_     = new_half_edge_indices [it-&gt;idx_prev_half_edge_.get ()];</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;            <span class="keywordflow">if</span> (it-&gt;idx_face_.isValid ())</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;            {</div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;              it-&gt;idx_face_ = new_face_indices [it-&gt;idx_face_.get ()];</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;            }</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;          }</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;          <span class="keywordflow">for</span> (FaceIterator it = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">faces_</a>.begin (); it!=<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">faces_</a>.end (); ++it)</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;          {</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;            it-&gt;idx_inner_half_edge_ = new_half_edge_indices [it-&gt;idx_inner_half_edge_.get ()];</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;          }</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html_a2d60b6927b31ef89cd3b97e8173ea4aa"><div class="ttname"><a href="classpcl_1_1_point_cloud.html#a2d60b6927b31ef89cd3b97e8173ea4aa">pcl::PointCloud::resize</a></div><div class="ttdeci">void resize(size_t n)</div><div class="ttdoc">Resize the cloud</div><div class="ttdef"><b>Definition:</b> point_cloud.h:455</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a2a0de549a87f8926f4fa2d99d19873a9"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">pcl::geometry::MeshBase::face_data_cloud_</a></div><div class="ttdeci">FaceDataCloud face_data_cloud_</div><div class="ttdoc">Data stored for the faces.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2111</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a479a1fb135090564e36a7ed69560c89a"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a479a1fb135090564e36a7ed69560c89a">pcl::geometry::MeshBase::sizeEdges</a></div><div class="ttdeci">size_t sizeEdges() const</div><div class="ttdoc">Get the number of the edges.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:778</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a8b3dcd0be1230d8cc27ed70a0aaac8d0"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">pcl::geometry::MeshBase::faces_</a></div><div class="ttdeci">Faces faces_</div><div class="ttdoc">Connectivity information for the faces.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2120</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a275168373d4ed9f2787abd3be6f78597"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a275168373d4ed9f2787abd3be6f78597">&#9670;&nbsp;</a></span>connectFace()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::connectFace </td>
          <td>(</td>
          <td class="paramtype">const HalfEdgeIndices &amp;&#160;</td>
          <td class="paramname"><em>inner_he</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const FaceData &amp;&#160;</td>
          <td class="paramname"><em>face_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Add a face to the mesh and connect it to the half-edges. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">inner_he</td><td>Inner half-edges of the face. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">face_data</td><td>Data that is stored in the face. This is only added if the mesh has data associated with the faces. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Index to the new face. </dd></dl>
<div class="fragment"><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;        {</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;          <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a8b3dcd0be1230d8cc27ed70a0aaac8d0">faces_</a>.push_back (Face (inner_he.back ()));</div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2f0d60f62c1363856eb9dfe619f87db2">addData</a> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a>, face_data, HasFaceData ());</div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; </div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;          <span class="keyword">const</span> FaceIndex idx_face (<span class="keyword">static_cast &lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a85c16666dbdf7d8c8cce217a68134694">sizeFaces</a> () - 1));</div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; </div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;          <span class="keywordflow">for</span> (HalfEdgeIndices::const_iterator it=inner_he.begin (); it!=inner_he.end (); ++it)</div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;          {</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;            this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#adb4ece77ab1605520fec23946c585af8">setFaceIndex</a> (*it, idx_face);</div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;          }</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; </div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;          <span class="keywordflow">return</span> (idx_face);</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a85c16666dbdf7d8c8cce217a68134694"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a85c16666dbdf7d8c8cce217a68134694">pcl::geometry::MeshBase::sizeFaces</a></div><div class="ttdeci">size_t sizeFaces() const</div><div class="ttdoc">Get the number of the faces.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:786</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_adb4ece77ab1605520fec23946c585af8"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#adb4ece77ab1605520fec23946c585af8">pcl::geometry::MeshBase::setFaceIndex</a></div><div class="ttdeci">void setFaceIndex(const HalfEdgeIndex &amp;idx_half_edge, const FaceIndex &amp;idx_face)</div><div class="ttdoc">Set the face index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1873</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a162bb8d66161e125929cd907ce48e710"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a162bb8d66161e125929cd907ce48e710">&#9670;&nbsp;</a></span>deleteEdge() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::deleteEdge </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_edge_index.html">EdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_edge</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mark the given edge (both half-edges) and the associated faces as deleted. </p>
<dl class="section note"><dt>注解</dt><dd>Call cleanUp () to finally delete all mesh-elements. </dd></dl>
<div class="fragment"><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        {</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_edge));</div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a4affa8ade9d394034ce299bf7fd95af1">deleteEdge</a> (pcl::geometry::toHalfEdgeIndex (idx_edge));</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (pcl::geometry::toHalfEdgeIndex (idx_edge, <span class="keyword">false</span>))); <span class="comment">// Bug in this class!</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a4affa8ade9d394034ce299bf7fd95af1"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a4affa8ade9d394034ce299bf7fd95af1">pcl::geometry::MeshBase::deleteEdge</a></div><div class="ttdeci">void deleteEdge(const HalfEdgeIndex &amp;idx_he)</div><div class="ttdoc">Mark the given half-edge, the opposite half-edge and the associated faces as deleted.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:235</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_aa114f7eeceeecdedfefc2d83d53c4f8b"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">pcl::geometry::MeshBase::isDeleted</a></div><div class="ttdeci">bool isDeleted(const VertexIndex &amp;idx_vertex) const</div><div class="ttdoc">Check if the given vertex is marked as deleted.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:646</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ace5548daf774ab8cc7b2f294d7d8050c"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">pcl::geometry::MeshBase::isValid</a></div><div class="ttdeci">bool isValid(const VertexIndex &amp;idx_vertex) const</div><div class="ttdoc">Check if the given vertex index is a valid index into the mesh.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:614</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a4affa8ade9d394034ce299bf7fd95af1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4affa8ade9d394034ce299bf7fd95af1">&#9670;&nbsp;</a></span>deleteEdge() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::deleteEdge </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mark the given half-edge, the opposite half-edge and the associated faces as deleted. </p>
<dl class="section note"><dt>注解</dt><dd>Call cleanUp () to finally delete all mesh-elements. </dd></dl>
<div class="fragment"><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        {</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_he));</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (idx_he)) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;          HalfEdgeIndex opposite = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1f3e4696e4a6dd299dbe94fd23ffbb37">getOppositeHalfEdgeIndex</a> (idx_he);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (idx_he))   this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a62b4389cf1d19c7ae829056888651b54">markDeleted</a> (idx_he);</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;          <span class="keywordflow">else</span>                             this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">deleteFace</a> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6547b360f64c3fce6ca9af1cfbf77ff">getFaceIndex</a> (idx_he));</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (opposite)) this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a62b4389cf1d19c7ae829056888651b54">markDeleted</a> (opposite);</div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;          <span class="keywordflow">else</span>                             this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">deleteFace</a> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6547b360f64c3fce6ca9af1cfbf77ff">getFaceIndex</a> (opposite));</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a18850a81cabcf16597a2418f67df452c"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">pcl::geometry::MeshBase::deleteFace</a></div><div class="ttdeci">void deleteFace(const FaceIndex &amp;idx_face)</div><div class="ttdoc">Mark the given face as deleted. More faces are deleted if the manifold mesh would become non-manifold...</div><div class="ttdef"><b>Definition:</b> mesh_base.h:263</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a62b4389cf1d19c7ae829056888651b54"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a62b4389cf1d19c7ae829056888651b54">pcl::geometry::MeshBase::markDeleted</a></div><div class="ttdeci">void markDeleted(const VertexIndex &amp;idx_vertex)</div><div class="ttdoc">Mark the given vertex as deleted.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1710</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ae6547b360f64c3fce6ca9af1cfbf77ff"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ae6547b360f64c3fce6ca9af1cfbf77ff">pcl::geometry::MeshBase::getFaceIndex</a></div><div class="ttdeci">FaceIndex getFaceIndex(const HalfEdgeIndex &amp;idx_half_edge) const</div><div class="ttdoc">Get the face index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:400</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a18850a81cabcf16597a2418f67df452c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18850a81cabcf16597a2418f67df452c">&#9670;&nbsp;</a></span>deleteFace()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::deleteFace </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mark the given face as deleted. More faces are deleted if the manifold mesh would become non-manifold. </p>
<dl class="section note"><dt>注解</dt><dd>Call cleanUp () to finally delete all mesh-elements. </dd></dl>
<div class="fragment"><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        {</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (idx_face)) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">deleteFace</a> (idx_face, IsManifold ());</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a428be4accd7f51c75d2e889d99205535"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a428be4accd7f51c75d2e889d99205535">&#9670;&nbsp;</a></span>deleteVertex()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::deleteVertex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_vertex</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Mark the given vertex and all connected half-edges and faces as deleted. </p>
<dl class="section note"><dt>注解</dt><dd>Call cleanUp () to finally delete all mesh-elements. </dd></dl>
<div class="fragment"><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        {</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_vertex));</div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;          <span class="keywordflow">if</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (idx_vertex)) <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;          <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">delete_faces_vertex_</a>.clear ();</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;          FaceAroundVertexCirculator       circ     = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#acbd873aa1fd360de8a67336854ceb0c0">getFaceAroundVertexCirculator</a> (idx_vertex);</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;          <span class="keyword">const</span> FaceAroundVertexCirculator circ_end = circ;</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;          <span class="keywordflow">do</span></div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;          {</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <span class="keywordflow">if</span> (circ.getTargetIndex ().isValid ()) <span class="comment">// Check for boundary.</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;            {</div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;              <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">delete_faces_vertex_</a>.push_back (circ.getTargetIndex ());</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            }</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;          } <span class="keywordflow">while</span> (++circ!=circ_end);</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160; </div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;          <span class="keywordflow">for</span> (FaceIndices::const_iterator it = <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">delete_faces_vertex_</a>.begin (); it!=<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">delete_faces_vertex_</a>.end (); ++it)</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;          {</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a18850a81cabcf16597a2418f67df452c">deleteFace</a> (*it);</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;          }</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a97f75dffac433d99357930f394968c81"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a97f75dffac433d99357930f394968c81">pcl::geometry::MeshBase::delete_faces_vertex_</a></div><div class="ttdeci">FaceIndices delete_faces_vertex_</div><div class="ttdoc">Storage for deleteVertex.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:2140</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_acbd873aa1fd360de8a67336854ceb0c0"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#acbd873aa1fd360de8a67336854ceb0c0">pcl::geometry::MeshBase::getFaceAroundVertexCirculator</a></div><div class="ttdeci">FaceAroundVertexCirculator getFaceAroundVertexCirculator(const VertexIndex &amp;idx_vertex) const</div><div class="ttdef"><b>Definition:</b> mesh_base.h:488</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a68c13e85605765881e3d885197f35fc3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a68c13e85605765881e3d885197f35fc3">&#9670;&nbsp;</a></span>getEdgeDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a>&amp; <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getEdgeDataCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get access to the stored edge data. </p>
<dl class="section warning"><dt>警告</dt><dd>Please make sure to NOT add or remove elements from the cloud. </dd></dl>
<div class="fragment"><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        {</div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>);</div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa0ca20bfce1cea8fdc94fddace06c38a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa0ca20bfce1cea8fdc94fddace06c38a">&#9670;&nbsp;</a></span>getFaceAroundFaceCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html">FaceAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getFaceAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the face of the outer half-edge (the targe...">pcl::geometry::FaceAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;        {</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;          <span class="keywordflow">return</span> (FaceAroundFaceCirculator (idx_face, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af8fb217c674a8b6cc538b80dc84708f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af8fb217c674a8b6cc538b80dc84708f6">&#9670;&nbsp;</a></span>getFaceAroundFaceCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html">FaceAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getFaceAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_inner_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_face_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the face of the outer half-edge (the targe...">pcl::geometry::FaceAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;        {</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_inner_half_edge));</div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;          <span class="keywordflow">return</span> (FaceAroundFaceCirculator (idx_inner_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aad0e01429b196849f6b081e1808dd777"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad0e01429b196849f6b081e1808dd777">&#9670;&nbsp;</a></span>getFaceAroundVertexCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html">FaceAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getFaceAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_outgoing_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...">pcl::geometry::FaceAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;        {</div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_outgoing_half_edge));</div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;          <span class="keywordflow">return</span> (FaceAroundVertexCirculator (idx_outgoing_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="acbd873aa1fd360de8a67336854ceb0c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acbd873aa1fd360de8a67336854ceb0c0">&#9670;&nbsp;</a></span>getFaceAroundVertexCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html">FaceAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getFaceAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_vertex</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_face_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the face of the outgoing half-ed...">pcl::geometry::FaceAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        {</div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_vertex));</div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;          <span class="keywordflow">return</span> (FaceAroundVertexCirculator (idx_vertex, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="af5df66a29bc91a2129a9da83fdd9da7e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af5df66a29bc91a2129a9da83fdd9da7e">&#9670;&nbsp;</a></span>getFaceDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a>&amp; <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getFaceDataCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get access to the stored face data. </p>
<dl class="section warning"><dt>警告</dt><dd>Please make sure to NOT add or remove elements from the cloud. </dd></dl>
<div class="fragment"><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;        {</div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a>);</div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac697d98117bd574577def3475ad6f1d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac697d98117bd574577def3475ad6f1d5">&#9670;&nbsp;</a></span>getHalfEdgeDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a>&amp; <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getHalfEdgeDataCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get access to the stored half-edge data. </p>
<dl class="section warning"><dt>警告</dt><dd>Please make sure to NOT add or remove elements from the cloud. </dd></dl>
<div class="fragment"><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;        {</div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a>);</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a422dba202580736060898b65c1dde8dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a422dba202580736060898b65c1dde8dd">&#9670;&nbsp;</a></span>getIncomingHalfEdgeAroundVertexCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html">IncomingHalfEdgeAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getIncomingHalfEdgeAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_incoming_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...">pcl::geometry::IncomingHalfEdgeAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;        {</div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_incoming_half_edge));</div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;          <span class="keywordflow">return</span> (IncomingHalfEdgeAroundVertexCirculator (idx_incoming_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3389ae4dcc4ca85e5adfdc33f48edc96"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3389ae4dcc4ca85e5adfdc33f48edc96">&#9670;&nbsp;</a></span>getIncomingHalfEdgeAroundVertexCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html">IncomingHalfEdgeAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getIncomingHalfEdgeAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_vertex</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_incoming_half_edge_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the incoming half-edge (the targ...">pcl::geometry::IncomingHalfEdgeAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;        {</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_vertex));</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;          <span class="keywordflow">return</span> (IncomingHalfEdgeAroundVertexCirculator (idx_vertex, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a3c30f9b4f2c62b35eb70fa46e48f6024"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c30f9b4f2c62b35eb70fa46e48f6024">&#9670;&nbsp;</a></span>getInnerHalfEdgeAroundFaceCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html">InnerHalfEdgeAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getInnerHalfEdgeAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the inner half-edge (the target)....">pcl::geometry::InnerHalfEdgeAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;        {</div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;          <span class="keywordflow">return</span> (InnerHalfEdgeAroundFaceCirculator (idx_face, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a142a340e5b5cb10d86f4e1d49b3de90a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a142a340e5b5cb10d86f4e1d49b3de90a">&#9670;&nbsp;</a></span>getInnerHalfEdgeAroundFaceCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html">InnerHalfEdgeAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getInnerHalfEdgeAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_inner_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_inner_half_edge_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the inner half-edge (the target)....">pcl::geometry::InnerHalfEdgeAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;        {</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_inner_half_edge));</div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;          <span class="keywordflow">return</span> (InnerHalfEdgeAroundFaceCirculator (idx_inner_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aefe2d565191d2e35a6a4ad8b2f0773b5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefe2d565191d2e35a6a4ad8b2f0773b5">&#9670;&nbsp;</a></span>getOuterHalfEdgeAroundFaceCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html">OuterHalfEdgeAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getOuterHalfEdgeAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the outer half-edge (the target)....">pcl::geometry::OuterHalfEdgeAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;        {</div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;          <span class="keywordflow">return</span> (OuterHalfEdgeAroundFaceCirculator (idx_face, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a59a6e48c3f3275d65caf9d90139f7b30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59a6e48c3f3275d65caf9d90139f7b30">&#9670;&nbsp;</a></span>getOuterHalfEdgeAroundFaceCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html">OuterHalfEdgeAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getOuterHalfEdgeAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_inner_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_outer_half_edge_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the outer half-edge (the target)....">pcl::geometry::OuterHalfEdgeAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;        {</div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_inner_half_edge));</div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;          <span class="keywordflow">return</span> (OuterHalfEdgeAroundFaceCirculator (idx_inner_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5470d21fc93156f145190d1b783f9fa2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5470d21fc93156f145190d1b783f9fa2">&#9670;&nbsp;</a></span>getOutgoingHalfEdgeAroundVertexCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html">OutgoingHalfEdgeAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getOutgoingHalfEdgeAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_outgoing_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...">pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;        {</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_outgoing_half_edge));</div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;          <span class="keywordflow">return</span> (OutgoingHalfEdgeAroundVertexCirculator (idx_outgoing_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a76d6a2a322ad9723d8c16c6ac6adb079"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a76d6a2a322ad9723d8c16c6ac6adb079">&#9670;&nbsp;</a></span>getOutgoingHalfEdgeAroundVertexCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html">OutgoingHalfEdgeAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getOutgoingHalfEdgeAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_vertex</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_outgoing_half_edge_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the outgoing half-edge (the targ...">pcl::geometry::OutgoingHalfEdgeAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        {</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_vertex));</div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;          <span class="keywordflow">return</span> (OutgoingHalfEdgeAroundVertexCirculator (idx_vertex, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a86e8b2d7ccde25e97d4452a9c63a2be6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86e8b2d7ccde25e97d4452a9c63a2be6">&#9670;&nbsp;</a></span>getVertexAroundFaceCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html">VertexAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...">pcl::geometry::VertexAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;        {</div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;          <span class="keywordflow">return</span> (VertexAroundFaceCirculator (idx_face, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a22c4d0b82719c61474f1c10ae9165273"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22c4d0b82719c61474f1c10ae9165273">&#9670;&nbsp;</a></span>getVertexAroundFaceCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html">VertexAroundFaceCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexAroundFaceCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_inner_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_face_circulator.html" title="Circulates clockwise around a face and returns an index to the terminating vertex of the inner half-e...">pcl::geometry::VertexAroundFaceCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;        {</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_inner_half_edge));</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;          <span class="keywordflow">return</span> (VertexAroundFaceCirculator (idx_inner_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a138e4db9aa95de0b5b9a4c8033eaa3be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a138e4db9aa95de0b5b9a4c8033eaa3be">&#9670;&nbsp;</a></span>getVertexAroundVertexCirculator() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html">VertexAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_outgoing_half_edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...">pcl::geometry::VertexAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;        {</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_outgoing_half_edge));</div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;          <span class="keywordflow">return</span> (VertexAroundVertexCirculator (idx_outgoing_half_edge, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a17ce476f53a6e99c6de3996bb217674c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a17ce476f53a6e99c6de3996bb217674c">&#9670;&nbsp;</a></span>getVertexAroundVertexCirculator() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html">VertexAroundVertexCirculator</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexAroundVertexCirculator </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_vertex</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section see"><dt>参见</dt><dd><a class="el" href="classpcl_1_1geometry_1_1_vertex_around_vertex_circulator.html" title="Circulates counter-clockwise around a vertex and returns an index to the terminating vertex of the ou...">pcl::geometry::VertexAroundVertexCirculator</a> </dd></dl>
<div class="fragment"><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        {</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_vertex));</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;          <span class="keywordflow">return</span> (VertexAroundVertexCirculator (idx_vertex, <span class="keyword">this</span>));</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ad01617b7fc9c08e79b7357659a8d6731"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad01617b7fc9c08e79b7357659a8d6731">&#9670;&nbsp;</a></span>getVertexDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a>&amp; <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexDataCloud </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get access to the stored vertex data. </p>
<dl class="section warning"><dt>警告</dt><dd>Please make sure to NOT add or remove elements from the cloud. </dd></dl>
<div class="fragment"><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;        {</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;          <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>);</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a79c2cc7cfbccb8dbb5769c55a7b15d04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79c2cc7cfbccb8dbb5769c55a7b15d04">&#9670;&nbsp;</a></span>getVertexIndex()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html">VertexIndex</a> <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::getVertexIndex </td>
          <td>(</td>
          <td class="paramtype">const VertexData &amp;&#160;</td>
          <td class="paramname"><em>vertex_data</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get the index associated to the given vertex data. </p>
<dl class="section return"><dt>返回</dt><dd>Invalid index if the mesh does not have associated vertex data. </dd></dl>
<div class="fragment"><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;        {</div>
<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;          <span class="keywordflow">if</span> (HasVertexData::value)</div>
<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;          {</div>
<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;            assert (&amp;vertex_data &gt;= &amp;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>.front () &amp;&amp; &amp;vertex_data &lt;= &amp;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>.back ());</div>
<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;            <span class="keywordflow">return</span> (VertexIndex (std::distance (&amp;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>.front (), &amp;vertex_data)));</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;          }</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;          {</div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;            <span class="keywordflow">return</span> (VertexIndex ());</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;          }</div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aa4a2a5251d47b228119292f93a263715"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4a2a5251d47b228119292f93a263715">&#9670;&nbsp;</a></span>isBoundary()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<div class="memtemplate">
template&lt;bool CheckVerticesT&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::isBoundary </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_face_index.html">FaceIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_face</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Check if the given face lies on the boundary. There are two versions of this method, selected by the template parameter. </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">CheckVerticesT</td><td>Check if any vertex lies on the boundary (true) or check if any edge lies on the boundary (false). </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;        {</div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;          assert (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ace5548daf774ab8cc7b2f294d7d8050c">isValid</a> (idx_face));</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;          <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a1318e10020901a4de7eb5bdd947cf669">isBoundary</a> (idx_face, boost::integral_constant &lt;bool, CheckVerticesT&gt; ()));</div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a9d9496611b3a0df8f2c769dc7899ed05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d9496611b3a0df8f2c769dc7899ed05">&#9670;&nbsp;</a></span>makeAdjacent()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::makeAdjacent </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he_ab</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_he_bc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1geometry_1_1_half_edge_index.html">HalfEdgeIndex</a> &amp;&#160;</td>
          <td class="paramname"><em>idx_free_half_edge</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Make the half-edges bc the next half-edge of ab. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_he_ab</td><td>Index to the half-edge between the vertices a and b. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">idx_he_bc</td><td>Index to the half-edge between the vertices b and c. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">idx_free_half_edge</td><td>Free half-edge needed to re-connect the half-edges around vertex b. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;        {</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;          <span class="comment">// Re-link. No references!</span></div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;          <span class="keyword">const</span> HalfEdgeIndex idx_he_ab_next   = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a06dfbe1db8d1f9c24eff51ebd4852652">getNextHalfEdgeIndex</a> (idx_he_ab);</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;          <span class="keyword">const</span> HalfEdgeIndex idx_he_bc_prev   = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a58255271906702d47fcbe55d6f117be1">getPrevHalfEdgeIndex</a> (idx_he_bc);</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;          <span class="keyword">const</span> HalfEdgeIndex idx_he_free_next = this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a06dfbe1db8d1f9c24eff51ebd4852652">getNextHalfEdgeIndex</a> (idx_free_half_edge);</div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; </div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a953b3cece4af98f743a73450c557fdf3">connectPrevNext</a> (idx_he_ab,          idx_he_bc);</div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a953b3cece4af98f743a73450c557fdf3">connectPrevNext</a> (idx_free_half_edge, idx_he_ab_next);</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a953b3cece4af98f743a73450c557fdf3">connectPrevNext</a> (idx_he_bc_prev,     idx_he_free_next);</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a58255271906702d47fcbe55d6f117be1"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a58255271906702d47fcbe55d6f117be1">pcl::geometry::MeshBase::getPrevHalfEdgeIndex</a></div><div class="ttdeci">HalfEdgeIndex getPrevHalfEdgeIndex(const HalfEdgeIndex &amp;idx_half_edge) const</div><div class="ttdoc">Get the previous half-edge index to a given half-edge.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:392</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a953b3cece4af98f743a73450c557fdf3"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a953b3cece4af98f743a73450c557fdf3">pcl::geometry::MeshBase::connectPrevNext</a></div><div class="ttdeci">void connectPrevNext(const HalfEdgeIndex &amp;idx_he_ab, const HalfEdgeIndex &amp;idx_he_bc)</div><div class="ttdoc">Connect the next and prev indices of the two half-edges with each other.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1399</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af7bd1b1b2ca096ce00e42044b68bd0f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7bd1b1b2ca096ce00e42044b68bd0f2">&#9670;&nbsp;</a></span>remove()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<div class="memtemplate">
template&lt;class ElementContainerT , class DataContainerT , class IndexContainerT , class HasDataT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">IndexContainerT <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::remove </td>
          <td>(</td>
          <td class="paramtype">ElementContainerT &amp;&#160;</td>
          <td class="paramname"><em>elements</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DataContainerT &amp;&#160;</td>
          <td class="paramname"><em>data_cloud</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Removes mesh elements and data that are marked as deleted from the container. </p>
<dl class="tparams"><dt>模板参数</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">ElementContainerT</td><td>e.g. std::vector &lt;<a class="el" href="classpcl_1_1geometry_1_1_vertex.html" title="A vertex is a node in the mesh.">Vertex</a>&gt; </td></tr>
    <tr><td class="paramname">DataContainerT</td><td>e.g. std::vector &lt;VertexData&gt; </td></tr>
    <tr><td class="paramname">IndexContainerT</td><td>e.g. std::vector &lt;<a class="el" href="classpcl_1_1geometry_1_1_vertex_index.html" title="Index used to access elements in the half-edge mesh. It is basically just a wrapper around an integer...">VertexIndex</a>&gt; </td></tr>
    <tr><td class="paramname">HasDataT</td><td>Integral constant specifying if the mesh has data associated with the elements.</td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in,out]</td><td class="paramname">elements</td><td>Container for the mesh elements. Resized to the new size. </td></tr>
    <tr><td class="paramdir">[in,out]</td><td class="paramname">data_cloud</td><td>Container for the mesh data. Resized to the new size. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Container with the same size as the old input data. Holds the indices to the new elements for each non-deleted element and an invalid index if it is deleted. </dd></dl>
<div class="fragment"><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;        {</div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;          <span class="keyword">typedef</span> <span class="keyword">typename</span> IndexContainerT::value_type   Index;</div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;          <span class="keyword">typedef</span> <span class="keyword">typename</span> ElementContainerT::value_type Element;</div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; </div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;          <span class="keywordflow">if</span> (HasDataT::value) assert (elements.size () == data_cloud.size ());</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;          <span class="keywordflow">else</span>                 assert (data_cloud.empty ()); <span class="comment">// Bug in this class!</span></div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160; </div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;          IndexContainerT new_indices (elements.size (), <span class="keyword">typename</span> IndexContainerT::value_type ());</div>
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;          Index ind_old (0), ind_new (0);</div>
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; </div>
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;          <span class="keyword">typename</span> ElementContainerT::const_iterator it_e_old = elements.begin ();</div>
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;          <span class="keyword">typename</span> ElementContainerT::iterator       it_e_new = elements.begin ();</div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; </div>
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;          <span class="keyword">typename</span> DataContainerT::const_iterator it_d_old = data_cloud.begin ();</div>
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;          <span class="keyword">typename</span> DataContainerT::iterator       it_d_new = data_cloud.begin ();</div>
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; </div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;          <span class="keyword">typename</span> IndexContainerT::iterator       it_ind_new     = new_indices.begin ();</div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;          <span class="keyword">typename</span> IndexContainerT::const_iterator it_ind_new_end = new_indices.end ();</div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; </div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;          <span class="keywordflow">while</span> (it_ind_new!=it_ind_new_end)</div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;          {</div>
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;            <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#aa114f7eeceeecdedfefc2d83d53c4f8b">isDeleted</a> (ind_old))</div>
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;            {</div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;              *it_ind_new = ind_new++;</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; </div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;              <span class="comment">// TODO: Test for self assignment?</span></div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;              *it_e_new++ = *it_e_old;</div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;              this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac30198b473de1a03abe20fb05464afb8">assignIf</a>    (it_d_old, it_d_new, HasDataT ());</div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;              this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a00d8dcea3af77289df1bfa6112e33894">incrementIf</a> (          it_d_new, HasDataT ());</div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;            }</div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;            ++ind_old;</div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;            ++it_e_old;</div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;            this-&gt;<a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a00d8dcea3af77289df1bfa6112e33894">incrementIf</a> (it_d_old, HasDataT ());</div>
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;            ++it_ind_new;</div>
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;          }</div>
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; </div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;          elements.resize (ind_new.get (), Element ());</div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;          <span class="keywordflow">if</span> (HasDataT::value)</div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;          {</div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;            data_cloud.resize (ind_new.get ());</div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;          }</div>
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;          <span class="keywordflow">else</span> <span class="keywordflow">if</span> (it_d_old != data_cloud.begin () || it_d_new != data_cloud.begin ())</div>
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;          {</div>
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;            std::cerr &lt;&lt; <span class="stringliteral">&quot;TODO: Bug in MeshBase::remove!\n&quot;</span>;</div>
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;            assert (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;            exit (EXIT_FAILURE);</div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;          }</div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; </div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;          <span class="keywordflow">return</span> (new_indices);</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_a00d8dcea3af77289df1bfa6112e33894"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#a00d8dcea3af77289df1bfa6112e33894">pcl::geometry::MeshBase::incrementIf</a></div><div class="ttdeci">void incrementIf(IteratorT &amp;it, boost::true_type) const</div><div class="ttdoc">Increment the iterator.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1810</div></div>
<div class="ttc" id="aclasspcl_1_1geometry_1_1_mesh_base_html_ac30198b473de1a03abe20fb05464afb8"><div class="ttname"><a href="classpcl_1_1geometry_1_1_mesh_base.html#ac30198b473de1a03abe20fb05464afb8">pcl::geometry::MeshBase::assignIf</a></div><div class="ttdeci">void assignIf(const ConstIteratorT source, IteratorT target, boost::true_type) const</div><div class="ttdoc">Assign the source iterator to the target iterator.</div><div class="ttdef"><b>Definition:</b> mesh_base.h:1823</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a365f1f65496b17f9ab5c51edae4a7782"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a365f1f65496b17f9ab5c51edae4a7782">&#9670;&nbsp;</a></span>setEdgeDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::setEdgeDataCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">EdgeDataCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>edge_data_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change the stored edge data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">edge_data_cloud</td><td>The new edge data. Must be the same as the current data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the cloud could be set. </dd></dl>
<div class="fragment"><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;        {</div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;          <span class="keywordflow">if</span> (edge_data_cloud.size () == <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a>.size ())</div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;          {</div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;            <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae6cc2e588af6754985ebb958a1835c91">edge_data_cloud_</a> = edge_data_cloud;</div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;          }</div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;          {</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;          }</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a582a4ea3ce387865fde824816fffb6ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a582a4ea3ce387865fde824816fffb6ca">&#9670;&nbsp;</a></span>setFaceDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::setFaceDataCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">FaceDataCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>face_data_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change the stored face data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">face_data_cloud</td><td>The new face data. Must be the same as the current data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the cloud could be set. </dd></dl>
<div class="fragment"><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;        {</div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;          <span class="keywordflow">if</span> (face_data_cloud.size () == <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a>.size ())</div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;          {</div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;            <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#a2a0de549a87f8926f4fa2d99d19873a9">face_data_cloud_</a> = face_data_cloud;</div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;          }</div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;          {</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;          }</div>
<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a4848866528fc0e8a64197f91498defa0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4848866528fc0e8a64197f91498defa0">&#9670;&nbsp;</a></span>setHalfEdgeDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::setHalfEdgeDataCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">HalfEdgeDataCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>half_edge_data_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change the stored half-edge data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">half_edge_data_cloud</td><td>The new half-edge data. Must be the same as the current data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the cloud could be set. </dd></dl>
<div class="fragment"><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;        {</div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;          <span class="keywordflow">if</span> (half_edge_data_cloud.size () == <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a>.size ())</div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;          {</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;            <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ac9ed388ef2ab0769901c953146946294">half_edge_data_cloud_</a> = half_edge_data_cloud;</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;          }</div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;          {</div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;          }</div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6337a69d1d50217e4de671d3025f236e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6337a69d1d50217e4de671d3025f236e">&#9670;&nbsp;</a></span>setVertexDataCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class DerivedT , class MeshTraitsT , class MeshTagT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">pcl::geometry::MeshBase</a>&lt; DerivedT, MeshTraitsT, MeshTagT &gt;::setVertexDataCloud </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classpcl_1_1_point_cloud.html">VertexDataCloud</a> &amp;&#160;</td>
          <td class="paramname"><em>vertex_data_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Change the stored vertex data. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">vertex_data_cloud</td><td>The new vertex data. Must be the same as the current data. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the cloud could be set. </dd></dl>
<div class="fragment"><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        {</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;          <span class="keywordflow">if</span> (vertex_data_cloud.size () == <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a>.size ())</div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;          {</div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;            <a class="code" href="classpcl_1_1geometry_1_1_mesh_base.html#ae472d8311af5200ab6d7d3347aab9fb1">vertex_data_cloud_</a> = vertex_data_cloud;</div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;          }</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;          <span class="keywordflow">else</span></div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;          {</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;            <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;          }</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>geometry/include/pcl/geometry/<a class="el" href="mesh__base_8h_source.html">mesh_base.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>geometry</b></li><li class="navelem"><a class="el" href="classpcl_1_1geometry_1_1_mesh_base.html">MeshBase</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
